FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET:重置该task时清除该activity
我们看一下这个时候的堆栈:
然后我们按home键切换到launch,在从launch上启动该apk,这个时候会进行任务的reset.可以看到,显示的是MainActivity.相关堆栈:
可以看到ActivityA被销毁了。
这个标志将会非常有用当你想在你的应用中有个逻辑切换,例如,一个 e-mail的应用可能用于一个命令去显示附件,这个命令启动一个图片浏览的activity去显示附件,这个activity是e-mail应用的一部分,因为它是用户完成这件事情的一部分。但是,当用户离开这个e-mail应用,一段时间过后用户又从home选择这个应用,我们更希望这个时候回到的界面是显示命令用于交互的界面,而不是显示附件的图片界面。通过设置这个标志,当加载图片附件时,包括它本身及它加载的activity在下一次回到该应用时都会删除
实例:
我们有两个activity:MainActivity和ActivityA.,从MainActivity启动ActivityA,我们设置flag FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET
public void onClick(View arg0) { // TODO Auto-generated method stub Log.i(TAG, "--onClick--task id = " + getCurrentTaskId()); Intent intent = new Intent("com.leaves.ipanel.ActivityA"); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); startActivity(intent); }
我们看一下这个时候的堆栈:
然后我们按home键切换到launch,在从launch上启动该apk,这个时候会进行任务的reset.可以看到,显示的是MainActivity.相关堆栈:
可以看到ActivityA被销毁了。