清除Android活动堆栈并启动活动

时间:2017-02-11 06:32:47

标签: android android-intent

我知道这个问题已经在另一个帖子中得到了解答。但它并没有解决我的问题。

我有3 screens: A,B and Home。应用程序以A开头,然后转到B然后转到主页。但是我希望在它到达Home活动时删除活动A和B,以便在back is pressed app exits

时删除

我试过了:

  1. Intent.FLAG_ACTIVITY_CLEAR_TOP。按下后背时工作正常。应用程序退出。但如果我再次从后台打开应用程序,则从屏幕B开始。

  2. Intent.FLAG_ACTIVITY_NEW_TASK.这完全符合我的要求。但是当Home活动开始时,屏幕上会出现突然的故障并且不顺畅。

3 个答案:

答案 0 :(得分:1)

Intent intent = new Intent(getApplicationContext(), Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

这将清除所有家庭活动。

答案 1 :(得分:0)

请尝试以下代码:

Intent i = new Intent(YourActivity.this, HomeActivity.class);
            i2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
finish(); 
startActivity(i);

答案 2 :(得分:0)

您也可以这样做,对于您的splashScreen(A),您可以在AndroidMenifest.xml中设置nohistory = true,并转到Activity(B),以及从Activity(B)完成活动时的Activity Home( B)比转到家庭活动。 所以你以前的两个活动都不会堆叠存储。

在Activity B上覆盖onBackPresh()方法,但删除它旁边的super.backpresh()。并开始你的活动A完成这个当前活动,它将工作。