Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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 在onPause中调用finish的活动在方向更改期间崩溃_Android_Events_Memory Management_Orientation - Fatal编程技术网

Android 在onPause中调用finish的活动在方向更改期间崩溃

Android 在onPause中调用finish的活动在方向更改期间崩溃,android,events,memory-management,orientation,Android,Events,Memory Management,Orientation,为了保护资源和防止内存泄漏,每当应用程序从一个活动转到另一个活动时,我都会在onPause事件中调用finish()。我认为它工作正常,但当我尝试旋转屏幕时,应用程序崩溃了-错误是“重复完成请求” 我如何防止这种情况发生,onPause事件中是否有方法检测应用程序是否要进行下一个活动或只是改变方向? 有没有比使用finish更好的保存内存的方法 谢谢你的帮助 你可以试试旗子。这将在新活动出现在您的活动面前时立即完成您的活动 在开始活动时,您可以将其放入意图中: intent.setFlags(I

为了保护资源和防止内存泄漏,每当应用程序从一个活动转到另一个活动时,我都会在onPause事件中调用finish()。我认为它工作正常,但当我尝试旋转屏幕时,应用程序崩溃了-错误是“重复完成请求” 我如何防止这种情况发生,onPause事件中是否有方法检测应用程序是否要进行下一个活动或只是改变方向? 有没有比使用finish更好的保存内存的方法

谢谢你的帮助

你可以试试旗子。这将在新活动出现在您的活动面前时立即完成您的活动

在开始活动时,您可以将其放入意图中:

intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);
或者,您可以在清单中设置它,以便您的活动始终带有此标志:

android:noHistory="true"
作为该活动的
标记中的属性


这样,您就可以避免在
onPause
中调用
finish
。我认为这比试图弄清楚框架何时会调用
finish
本身要好。

测试您的活动是否已经完成了。isFinishing()(这是您的活动的位置)?

这里只是一个暗箱操作,但是您在onPause实现中调用super.onPause()了吗?

谢谢,我刚刚做到了!我试图“投票”,但我没有声誉15…谢谢你,非常非常-最简单的解决方案很好!我不知道这件事。