当用户按下后退按钮时,我有一个应用程序进入后台 -
@Override
public void onBackPressed() {
Intent setIntent = new Intent(Intent.ACTION_MAIN);
setIntent.addCategory(Intent.CATEGORY_HOME);
setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(setIntent);
}
因此,用户关闭应用的唯一方法是使用task manager
并手动停止。
现在,我尝试使用Android设备中的onDestroy
关闭我的应用来测试task manager
,
然而,在Android Studio
上该应用似乎仍然存在,它表示Session: '<app_name>' : running
并且onDestroy
未被调用。
为什么会这样,我该如何解决?
**我想看到onDestroy
在我使用task manager
停止我的应用并通过手动停止它时被调用,因为用户必须这样做,如果他想要关闭我的应用程序,而不是按后退按钮。通过按下后退按钮,应用程序将存活并且很好,这就是我想要的。
答案 0 :(得分:2)
为什么重新启动后退活动?什么都不做。
@Override
public void onBackPressed() {
}
答案 1 :(得分:0)
致电 finish()
以销毁活动。
@Override
public void onBackPressed() {
Intent setIntent = new Intent(Intent.ACTION_MAIN);
setIntent.addCategory(Intent.CATEGORY_HOME);
setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(setIntent);
finish();
}
答案 2 :(得分:0)
在设置→开发人员选项下,转到应用部分并启用&#34; 不要保留活动&# 34;选项。 然后,每次按下后退按钮,应用程序都将被销毁。 我想覆盖后退按钮操作以销毁您可以覆盖活动
中的onKeyDown的应用程序 @Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK))
{
finish();
}
return super.onKeyDown(keyCode, event);
}
答案 3 :(得分:0)
您可以在finish();
startActivity(setIntent);
或者,您也可以在最后致电super.onBackPressed();
。