我的应用程序有以下流程屏幕:
主屏->屏1->屏2->屏3->屏4->屏5
现在我在每个屏幕上都有一个公共注销按钮
(主屏/ 1屏/ 2屏/ 3屏/ 4屏/ 5屏)
我想当用户点击注销按钮(从任何屏幕),所有屏幕将完成,一个新的屏幕登录将打开。
我已经尝试了几乎所有的FLAG_ACTIVITY来实现这一点。
我还通过一些答案在stackoverflow,但不能解决这个问题。
我的应用程序是在Android 1.6上,所以不能使用FLAG_ACTIVITY_CLEAR_TASK
有什么办法解决这个问题吗?
顺便说一句,很高兴知道
这个答案有效(https://stackoverflow.com/a/13468685/7034327)
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
this.finish();
然而这行不通
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
. setflags()会替换之前的任何标志,不会追加任何新标志,而. addflags()会。
所以这个也可以
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
从developer.android.com:
public void finishAffinity ()
在API级别16中添加
Finish this activity as well as all activities immediately below it in the current task that have the same affinity. This is typically used when an application can be launched on to another task (such as from an ACTION_VIEW of a content type it understands) and the user has used the up navigation to switch out of the current task and in to its own task. In this case, if the user has navigated down into any other activities of the second application, all of those should be removed from the original task as part of the task switch.
请注意,此结束不允许您向前一个活动交付结果,如果您试图这样做,则会抛出异常。