Android活动的启动模式

千磨万击还坚劲,任尔东西南北风。这篇文章主要讲述Android活动的启动模式相关的知识,希望能为你提供帮助。
1. standard标准模式,是活动默认的启动模式,在不进行显示指定的情况下,所有活动都会自动使用这种模式。
android使用返回栈管理活动,在standard模式下,每当启动一个新的活动,它就会在返回栈中入栈,并处在栈顶位置。
例如:

Android活动的启动模式

文章图片
Android活动的启动模式

文章图片
1 public class FirstActivity extends AppCompatActivity { 2@Override 3protected void onCreate(Bundle savedInstanceState) { 4super.onCreate(savedInstanceState); 5//提示信息 6Toast.makeText(this, "FirstActivity" + this, Toast.LENGTH_SHORT).show(); 7setContentView(R.layout.activity_first); 8Button btn = findViewById(R.id.btn1); 9btn.setOnClickListener(new View.OnClickListener() { 10@Override 11public void onClick(View v) { 12Intent intent = new Intent(FirstActivity.this, FirstActivity.class); 13startActivity(intent); 14} 15}); 16} 17 }

FirstActivity.java 
从输出信息可以看出,当点击new activity时,会新建一个活动,执行了onCreate方法。
Android活动的启动模式

文章图片

2. singleTop如果要启动一个活动,当栈顶已经存在了该活动,那么不会再次新建这个活动;反正,如果这个活动不在栈顶,仍然会新建这个活动。
可能有些时候,绝对standard模式不太合理,活动已经在栈顶了,为什么还要启动新的活动?
设置为singleTop模式:
1 < activity android:name=".FirstActivity" 2android:launchMode="singleTop"> 3< intent-filter> 4< action android:name="android.intent.action.MAIN" /> 5< category android:name="android.intent.category.LAUNCHER" /> 6< /intent-filter> 7 < /activity>

 
3.singleTask目的是让某个活动在整个应用程序的上下文中只存在一个实例。每次启动活动时,系统会首先检查返回栈中是否存在这个活动,只有不存在才会创建,如果找到,直接使用返回栈的活动。
Android活动的启动模式

文章图片

 
4.singleInstance  启动一个新的返回栈来管理这个活动。
实现多个程序共享活动,多个应用程序共享这个返回栈。
【Android活动的启动模式】 

    推荐阅读