活动不被破坏
我有一个应用程序,它被切换到后台,当用户按后退按钮 -活动不被破坏
@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
和手动停止。现在
,我试图通过关闭使用task manager
我的应用程序在我的Android设备, 然而,在Android Studio
的应用程序来测试我的onDestroy
似乎还活着,它说Session: '<app_name>' : running
和onDestroy
不叫。
这是为什么,我该如何解决?
**我想要看到onDestroy
在我停止我的应用时使用task manager
并手动停止它,因为用户如果要关闭我的应用时必须这样做,而不是按回来按钮。通过按回来按钮应用程序将活着,它的罚款,这是我想要的。
在设置→开发人员选项,转到应用部分,并启用“不保留活动”选项。 然后,每次你点击后退按钮,应用程序将被销毁。 我要覆盖的后退按钮动作来破坏应用程序,你可以在你的活动覆盖的onkeydown
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK))
{
finish();
}
return super.onKeyDown(keyCode, event);
}
找不到它 – user2162550 2014-10-20 17:34:38
在设备的开发人员设置http://media02.hongkiat.com/android-developer-options-hidden-features/dont-keep-activities.jpg – JoaoBiriba 2014-10-20 17:35:08
好的,看到它,它的工作原理,但我需要以相同的方式测试应用程序,就像它以正常的方式运行,我的意思是,通过后退按钮,它应该去背景,而不是被销毁,当用户停止应用程序,应该调用'onDestroy'。你的建议是当用户按下后退按钮时销毁应用程序。 – user2162550 2014-10-20 17:42:02
致电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();
}
什么时候该打电话给我?我需要在用户停止应用程序时执行此操作。 – user2162550 2014-10-20 17:24:13
更新了代码。 :) – Swayam 2014-10-20 17:34:42
谢谢,但我需要它的工作,当用户手动停止应用程序,我会编辑我的问题 – user2162550 2014-10-20 17:36:03
您可以拨打finish();
,为前,后startActivity(setIntent);
或者,你可以打电话super.onBackPressed();
,也最后。
抱歉,这不是我问的问题 – user2162550 2014-10-20 17:52:05
为什么要重新启动后面按下的活动?什么都不做。
@Override
public void onBackPressed() {
}
请参阅已编辑的问题 – user2162550 2014-10-20 17:52:39
根据Google的文档,onDestroy()是一个不可靠的钩子。它不会在自动清理应用程序时触发,也可能不会在手动中执行。 – 2014-10-20 20:40:03
我不相信当您通过任务管理器停止应用程序时,将会调用onDestroy或任何其他函数。我相信它确实会杀死这个过程,并且不会让你的应用程序有机会做任何事情。 – Randy 2014-10-20 18:40:00