Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Ondestroy - Fatal编程技术网

Android ondestroy不总是被调用吗?

Android ondestroy不总是被调用吗?,android,ondestroy,Android,Ondestroy,我在活动的ondestory中放入了一些缓存清理代码,但大多数情况下,除非我通过finish()明确完成活动,否则代码不会执行 编辑:仅读取ondestory仅在使用finish()或系统资源不足时调用。那么我需要把缓存清理代码放在哪里呢?如果我将它放在onPause()中,用户返回应用程序,缓存将被清除。实际上,我正在缓存中存储重要的临时文件,这些文件不应在Android developer的onPause中删除: 受保护的空onDestroy() 添加到API级别1中,在激活活动之前执行任何

我在活动的
ondestory
中放入了一些缓存清理代码,但大多数情况下,除非我通过
finish()
明确完成活动,否则代码不会执行

编辑:仅读取
ondestory
仅在使用
finish()
或系统资源不足时调用。那么我需要把缓存清理代码放在哪里呢?如果我将它放在
onPause()
中,用户返回应用程序,缓存将被清除。实际上,我正在缓存中存储重要的临时文件,这些文件不应在Android developer的
onPause

中删除:

受保护的空onDestroy()

添加到API级别1中,在激活活动之前执行任何最终清理 摧毁。这可能是因为活动正在完成 (有人在其上调用了finish(),或者因为系统暂时关闭 正在销毁此活动实例以节省空间。您可以 使用isFinishing()方法区分这两种情况

注意:不要指望调用此方法作为保存位置 数据!例如,如果活动正在编辑内容中的数据 提供程序,这些编辑应在onPause()或 onSaveInstanceState(Bundle),不在此处。此方法通常是 实现以释放资源,如与 活动,这样被破坏的活动就不会留下这样的东西 大约在其应用程序的其余部分仍在运行时 系统将简单地终止活动的宿主的情况 进程,而不在其中调用此方法(或任何其他方法),因此 不应该被用来做打算留在身边的事情 过程结束后


您可以将代码移动到
onPause()
onStop()

当系统从内存中完全删除活动时,或者当用户终止活动时,您希望在暂停时保存数据,因为在销毁之前总是会调用onStop()。

尝试使用onStop>

像这样

@Override
    protected void onStop() {
        super.onStop();
       //write your code here
    }

我将已调整大小的图像存储在缓存中。如果我将其刷新到顶部()/onpause(),并且应用程序继续运行,则已调整大小的图像将丢失。我是否应再次调整它们的大小?这相当耗费资源。保存图像非常简单
onstop()
,然后加载它们
onStart()
我正在将已调整大小的图像存储在临时缓存文件夹中…用户可以单击按钮保存图像,也可以使用“后退”按钮离开应用程序…问题是,我只想在他离开我的应用程序时清除/擦除已调整大小的图像。当用户看不到活动时,会调用“暂停”,因此您可以将代码放在那里,然后重试estore onResume。你是说我在
onPause
中删除所有已调整大小的图像,然后在
onResume
中重新创建它们?可能会有500个图像……每次调整它们的大小都需要一些时间,这并不是真正的用户友好iMonDestroy()在强制关闭的情况下不会调用。在通过刷出最近的应用程序来删除应用程序时也不会调用。至少在大多数情况下,有时会触发。我真的很想知道这个回调到底应该包含什么。