Activity设置启动模式的两种方式

Activity的启动模式用于设置任务栈管理其方式,通常有两种方式设置Activity启动模式。

一种是在AndroidManifest.xml文件中的<activity>节点中设置android:launchMode属性,

可以设置四种standard,singleTop,singleTask,singleInstance;详细含义点击查看《Android开发艺术探索》学习总结2 Activity启动模式,比如:

<activity android:name=".TransitionActivity"
    android:launchMode="standard"/>

另一种就是通过在开启Activity的时候,通过设置Intent Flag来设置,比如:

Intent intent=new Intent(this,TransitionActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

下面就来介绍第二种方式几个常用的Flag

(1)FLAG_ACTIVITY_SINGLE_TOP

其效果和第一种singleTop模式一样

(2)FLAG_ACTIVITY_CLEAR_TOP

其效果和第一种singleTask模式一样

(3)FLAG_ACTIVITY_NO_HISTORY

其效果是当某个Activity以这种方式启动的时候,其再去启动其他Activity,则该Activity就消失了;比如,A以这种方式启动B,B启动了C,那么Activity的任务栈中就只有AC了

(4)FLAG_ACTIVITY_NEW_TASK

其效果是启动的activity在一个新的任务栈中,功能和第一种singleInstance模式一样,通常用于在一个没有Activity任务栈的环境里开启一个Activity,就好比我们经常使用的服务里面。

猜你喜欢

转载自blog.csdn.net/hfut_why/article/details/81916141
今日推荐