在我的应用程序有很多活动,如果用户按后退按钮在任何活动就会去那里有速度按钮这个程序,反馈,脸谱等,都存在最后一个活动。这是可能的按钮时从上一次活动按我回到以前的活动。此外,在清单中,我给机器人:noHistory =“true”将所有活动。
对于前。如果用户在活动,如果他回来按下按钮时,它会如果他按下一个按钮,它应该回到活动A.同样,对于其他的活动去最后活动从那里。可能吗?
我终于决定何时在最后一项活动是按下按钮,仅回到第一个活动,我用下面的代码。
Button first = (Button) findViewById(R.id.first);
first.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startActivity(new Intent(last.this,first.class));
finish();
}
});
正如我删除的android:在清单noHistory =“真”的第一项活动是不断重复的。
如何阻止这一切。我应该在哪里调用完成()中的第一个活动
我想你调用MainActivity的finish()
当您启动您的FinalActivity
noHistory = "true"
应该给你解决,但你可以通过在MainActivity调用finish()
得到了类似的行为会启动一个新的活动之后。然而,noHistory到底是更易于维护,因为你可能会忘记包括finish()
呼叫如果添加另一个startActivity()调用您的MainActivity以后。
您可以直接开始对A活性的顶部的最后一项活动,然后就调用完成()在它。
例:
用户在“A”的活动,他按下返回键(我假设你重写的onBackPressed方法)。在那里,你开始最后的活动,如果用户按下一个按钮,你只需调用完成()和用户被引导返回到“A”的活动。
从Android文档:
机器人:noHistory 无论活动应该从活动组中删除,并完成(其完成()调用的方法),当用户导航远离它,它不再是可见的屏幕上 - “真”,如果它应该完成,而“假”如果不。默认值是“假”。
“真”值表示活动不会留下历史痕迹。它不会停留在任务的活动堆栈,这样用户将无法返回。
正如你所提到的noHistory标签,有一个由Android和活动越来越光洁度保持不回来堆一旦你离开他们开始你的最后活动
一种解决方案可以同时发动最后的活动来发送发射活动名称。使用该信息时,你需要它,你可以启动发射活动。
e.g
Intent it = new Intent(this,FinalActivity.class);
it.putExtra("launched_from",this.getClass().getSimpleName());
startActivity(it);
你可以检索它在FinalActivity这样
String launched_from = getIntent().getStringExtra("launched_from");
现在你知道从哪个活动它得到启动。