如何从任务中杀死特定的活动?

时间:2015-07-01 09:43:42

标签: android android-activity

在我的应用程序中,我有6个活动,如1-> 2-> 3-> 4-> 5-> 6。在第6个活动中,用户可以选择任何活动(我正在意图启动)。意味着他可以选择1或2或3或4或5.现在当我按下后退按钮时它又回到第6个活动(我不想要)。

例如: 我已经执行了这样的1-> 2-> 3-> 4-> 5-> 6。现在我参加了第6次活动。在这里我有按钮,当我按下它时,它启动了第4个活动。按钮点击我的代码就像这样。

Intent intent = new Intent(MainScreen.this, UniversitiesScreen.class);
startActivity(intent); 

所以现在我参加了第四项活动。当我按下后退按钮时,它将我带到第6个活动(我来自)而不是第3个活动(我期待的是什么)。 任何人都可以帮我处理这种类型的导航。

2 个答案:

答案 0 :(得分:1)

简单回答是在每个活动中编辑onBackPressed方法... 例如,像这样写入第4个活动

 @override
    public void onBackPressed(){
    Intent in = new Intent(this, ThirdActivity.class);
    startActivty(in);
    finish();
    }

请检查您传递给意图的上下文。每个活动都是不同的,因此从您调用另一个活动的位置传递活动上下文。 如果我的猜测为真Mainscreen.this是第一个活动,如果您从第四个活动中调用第五个活动,请将意图设为

Intent in = new Intent(FourthActivity.this,FifthActivity.class);
startActivity(in);     
finish();

并且您不会在Backstack中保存任何数据,而是手动返回...

答案 1 :(得分:0)

最好的方法是在您的活动中使用NavUtils.navigateUpFromSameTask(this)函数。为此,您需要在每个活动的清单中定义父活动,因此当您处于第4个活动时,父活动是第3个活动。然后当您单击后退或向上导航时,您最终进入父活动,即4日到3日。

看看这个 http://developer.android.com/training/implementing-navigation/ancestral.html

查看清单,然后导航到父任务部分

这也有助于从第4次活动返回到第3次活动的相同状态。