Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 程序退出时调用方法-onDestroy不可靠_Android_Activity Lifecycle_Ondestroy - Fatal编程技术网

Android 程序退出时调用方法-onDestroy不可靠

Android 程序退出时调用方法-onDestroy不可靠,android,activity-lifecycle,ondestroy,Android,Activity Lifecycle,Ondestroy,我想在程序退出时通过点击后退按钮来执行一些功能。 这项工作现在由onDestroy完成,它适用于除一个以外的所有情况。在某些情况下,退出程序时从另一个活动返回时,不会调用onDestroy 我知道理论上只有当Android由于内存不足而关闭应用程序时才应该调用onDestroy,但对我来说,onDestroy总是有效的,而且只有在非常特殊的情况下它不会 使用onPause或onStop不起作用,因为我只想在程序退出时调用函数,而不想在仅调用另一个活动时调用函数 那么,最后一种方法是点击后退按钮并

我想在程序退出时通过点击后退按钮来执行一些功能。 这项工作现在由onDestroy完成,它适用于除一个以外的所有情况。在某些情况下,退出程序时从另一个活动返回时,不会调用onDestroy

我知道理论上只有当Android由于内存不足而关闭应用程序时才应该调用onDestroy,但对我来说,onDestroy总是有效的,而且只有在非常特殊的情况下它不会

使用onPause或onStop不起作用,因为我只想在程序退出时调用函数,而不想在仅调用另一个活动时调用函数

那么,最后一种方法是点击后退按钮并调用那里的函数吗?或者有其他解决方案吗?

战术上,使用onBackPressed

从战略上重新考虑您的体系结构。编写良好的活动不应该关心是否调用onDestroy,因为它保证不会总是被调用。例如,Android可以随时终止您的进程,例如,内存极低的情况。您需要onDestroy才能可靠地工作,这一事实表明存在需要解决的问题。

战术上,使用onBackPressed


从战略上重新考虑您的体系结构。编写良好的活动不应该关心是否调用onDestroy,因为它保证不会总是被调用。例如,Android可以随时终止您的进程,例如,内存极低的情况。您需要onDestroy可靠地工作这一事实表明,存在需要解决的问题。

退出时您想做什么?还有,你说,但对我来说,onDestroy总是有效的。。。注意不要根据你的轶事经验做出假设。确保您理解生命周期提供的保证,并且只假设这些保证是正确的。退出时您想做什么?还有,你说,但对我来说,onDestroy总是有效的。。。注意不要根据你的轶事经验做出假设。确保您理解生命周期提供的保证,并且只假设这些保证是正确的。这不是覆盖了后退按钮吗?我想我读过一些开发人员应该避免这样做的地方。@semajhan:好吧,如果你链接到超类,它仍然会执行正常的返回行为。但是,是的,一般来说,开发人员应该避免这样做。这不是覆盖了后退按钮吗?我想我读过一些开发人员应该避免这样做的地方。@semajhan:好吧,如果你链接到超类,它仍然会执行正常的返回行为。但是,是的,一般来说,开发人员应该避免这样做。