[英]Activity not destroyed
我有一个应用程序,当用户按下“后退”按钮时,该应用程序会进入后台
@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设备中的task manager
关闭我的应用程序来测试onDestroy
,但是,在Android Studio
该应用程序似乎还活着,它显示Session: '<app_name>' : running
, onDestroy
正在Session: '<app_name>' : running
不叫。
为什么会这样,我该如何解决?
**我想看到在我使用task manager
停止应用程序并手动停止它时调用了onDestroy
,因为用户要关闭我的应用程序就必须这样做,而不是通过按后退按钮来完成。 通过按“后退”按钮,该应用程序将继续运行并且运行良好,这就是我想要的。
为什么要重新启动背面的活动? 什么都不做
@Override
public void onBackPressed() {
}
调用finish()
销毁一个Activity。
@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();
}
在“设置” →“ 开发人员选项”下 ,转到“应用程序”部分,然后启用“ 不保留活动 ”选项。 然后,每当您按下后退按钮时,该应用程序将被销毁。 我想覆盖“后退按钮”操作以销毁应用,可以覆盖“活动”中的onKeyDown
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK))
{
finish();
}
return super.onKeyDown(keyCode, event);
}
您可以调用finish();
,例如,在startActivity(setIntent);
之后startActivity(setIntent);
或者,您可以调用super.onBackPressed();
,也最后。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.