4.andriod中activity启动模式
作者:互联网
1. 标准启动模式
textView.setText( String.format( "TaskID:%d \nCurrent activity is:%s" ,getTaskId(),toString()) );
findViewById( R.id.startbtnself ).setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity( new Intent( MainActivity.this,MainActivity.class ) );
}
} );
<activity android:name=".MainActivity"
android:launchMode="standard">
2. SingleTop模式
3. SingleTask与SingleInstance模式
总结:
- standard:默认模式,允许多实例
- singleTop:相比于standard,有新的启动请求时,只有在目标Activity处于当前栈顶时,才会调用onNewIntent()而不创建新实例,其他情况都和standard一致
- singleTask:设置了singleTask启动模式的Activity,它在启动的时候,会先在系统中查找属性值affinity等于它的属性值taskAffinity的任务存在;如果存在这样的任务,它就会在这个任务中启动,否则就会在新任务中启动。因此,如果我们想要设置了singleTask启动模式的Activity在新的任务中启动,就要为它设置一个独立的taskAffinity属性值。如果设置了
- singleTask启动模式的Activity不是在新的任务中启动时,它会在已有的任务中查看是否已经存在相应的Activity实例,如果存在,就会把位于这个Activity实例上面的Activity全部结束掉,即最终这个Activity实例会位于任务的堆栈顶端中。
singleInstance:和singleTask相比,不同点在于singleInstance activity所在的task只会有这一个activity
链接https://www.jianshu.com/p/f32b40db6141
标签:启动,singleTask,activity,模式,实例,andriod,Activity 来源: https://blog.csdn.net/qq_41564875/article/details/104077463