无法离开我的应用程序
问题描述:
我有两项活动。在第一次我来到了第二个活动从第一这样:无法离开我的应用程序
Intent i = new Intent(this, SecondClass.class);
startActivity(i);
但是在特殊情况要求我重新启动的第一项活动,因为我要回到它与同样的方式:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//...
Intent i = new Intent(this, FirstClass.class);
startActivity(i);
super.onKeyDown(keyCode, event);
return true;
}
return super.onKeyDown(keyCode, event);
}
因为我不能离开第一项活动: 如果我使用
@Override
public void onBackPressed()
{
finish();
System.exit(0);
return;
}
或
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
System.exit(0);
return super.onKeyDown(keyCode, event);
}
return super.onKeyDown(keyCode, event);
}
它关闭我的应用程序,但打开第二个活动。 请帮忙!
答
刚开始一个新的活动(并且只有在你开始一个新的活动之后)才调用finish(),让android完成剩下的工作。
Intent i = new Intent(this, SecondClass.class);
startActivity(i);
finish();
它将开始第二个活动并关闭第一个活动。如果你现在按返回键它会带你到最后开启的活动(不一定是一个从你的应用程序)
答
当你去你的第二个活动,则关闭第一个活动是这样
Intent i = new Intent(this, SecondClass.class);
startActivity(i);
finish(); // Close your first activity
现在当你在你第二个活动,那么你可以通过这个
@Override
public void onBackPressed()
{
Intent i = new Intent(this, FirstClass.class);
startActivity(i);
finish(); // Close your second activity
}
重新启动您的第一个活动是为:)
答
一样简单,我认为你不应该做T因为Android平台已经为您提供了一堆活动,改变了堆栈中活动的行为以及它们的实例,您可以使用AndroidManifest.xml来实现这一点。 Activity Launch Mode
哇,这很完美!谢谢! – Leo 2012-03-26 18:21:47