【发布时间】:2010-08-31 14:25:47
【问题描述】:
我怎样才能杀死我的应用程序的所有活动?
我尝试使用this.finish(),但它只会杀死一个 Activity。
事实上,我希望当用户触摸返回按钮时(仅在其中一个活动中),应用程序做的就像他按下 Home 按钮一样。
【问题讨论】:
标签: android android-activity back-button android-homebutton
我怎样才能杀死我的应用程序的所有活动?
我尝试使用this.finish(),但它只会杀死一个 Activity。
事实上,我希望当用户触摸返回按钮时(仅在其中一个活动中),应用程序做的就像他按下 Home 按钮一样。
【问题讨论】:
标签: android android-activity back-button android-homebutton
您可以在 AndroidManifest.xml 中为您的所有活动设置android:noHistory="true"。因此,他们不会将自己置于历史堆栈中,并且后退按钮会将您带到主屏幕。
【讨论】:
这已经讨论过很多次了。本质上没有简单的方法,也不应该有。用户按 Home 键退出您的应用(正如您所指出的)。
【讨论】:
覆盖onBackPressed 方法,并执行当他们按下主页按钮时发生的事情。它并没有真正关闭所有活动,但您要问的是某个活动中的后按模拟主页按钮。
@Override
public void onBackPressed() {
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
startActivity(i);
}
当您按下返回时,将其放在活动中会回家。请注意,onBackPressed 方法的原始实现包括对 super 的调用,它被故意删除。我知道这个问题很老了,但他明确地问了别的问题
【讨论】:
要终止所有活动,请在 onBackPressed 上使用这些代码。
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount()>0) {
getFragmentManager().popBackStackImmediate();
} else {
finishAffinity();
System.exit(0);
}
}
【讨论】: