0
我有一个应用程序,它有多个入口点活动。我希望能够以编程方式清除我的活动堆栈。设想一个需要用户身份验证的应用程序,并且用户希望远程使其会话失效(例如,被盗设备)。当您有多个入口点活动时清除活动堆栈?
在一个应用程序有一个单一的启动活动的情况下,我们可以只使用:
Intent intent = new Intent(context, LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
要回根系活力。但是我的应用程序可能已经从不同的入口点启动,因此在堆栈的根目录可能有不同的活动类别。
一些选项:
- 注册在我的基本活动类的广播接收机,我可以从任何地方打电话。在处理程序中,只需调用finish(),展开可能存在的任何堆栈。
- 使用皱眉的System.exit()。
- 在上面的例子中,使用Intent.FLAG_ACTIVITY_CLEAR_TASK除了其他两个标志(但是这仅仅是API 11及更高版本...)
感谢
是否所有的活动都在同一个任务中? – 2013-05-14 02:09:43
是的,都在同一个任务。 – user291701 2013-05-14 16:05:32