Activity中 FLAG_ACTIVITY_NEW_TASK, FLAG_ACTIVITY_CLEAR_TOP和launchMode 实现清空栈顶行为的调查

<activity
    android:name=".export.LiveChannelListActivity"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:launchMode="singleTask"
    android:screenOrientation="landscape" />
public static void start(Context context) {
    Intent starter = new Intent(context, LiveChannelListActivity.class);
    starter.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP);
    context.startActivity(starter);
}

1. FLAG_ACTIVITY_NEW_TASK: 

调用几次打开几个Activity实例

2. FLAG_ACTIVITY_NEW_TASK|FLAG_ACTIVITY_CLEAR_TOP

每调用都打开创建新的Activity实例, 并销毁旧的

3. FLAG_ACTIVITY_NEW_TASK  设置launcheMode = singleTask

重复调用不再创建新的Activity实例, 已经创建Activity的onNewIntent回调, 如果想复用已经存在的实例, 应该使用此种方式

4. FLAG_ACTIVITY_NEW_TASK|FLAG_ACTIVITY_CLEAR_TOP  设置launcheMode = singleTask

同3 也就是说, 设置了launcheMode = singleTask, 其实FLAG_ACTIVITY_CLEAR_TOP 设置不设置关系不大

5.不设置FLAG_ACTIVITY_NEW_TASK, Activity不能从Service启动, 待验证


 

猜你喜欢

转载自my.oschina.net/sfshine/blog/1801561
今日推荐