在我的应用程序中,我有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个活动(我期待的是什么)。 任何人都可以帮我处理这种类型的导航。
答案 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次活动的相同状态。