我有一个有多个入口点活动的应用程序。我希望能够以编程方式清除我的活动堆栈。想象一个需要用户身份验证的应用程序,并且用户想要远程使其会话无效(例如,被盗设备)。
如果某个应用只有一个启动活动,我们可以使用:
Intent intent = new Intent(context, LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
返回根活动。但我的应用程序可能是从不同的入口点启动的,因此堆栈的根目录可能有不同的活动类。
一些选项:
由于
答案 0 :(得分:0)
您可以检查任务堆栈根目录下的活动名称,然后使用FLAG_ACTIVITY_CLEAR_TOP启动该活动。如果此根活动不是您想要的活动,则在onCreate中启动您想要的活动并调用finish() 您可以通过
找到根活动的名称