我发现onDestroy()只有在按下后退按钮时才会调用,而不是在使用最近的应用程序(通过按十字或滑动应用程序)或在应用程序管理器中关闭应用程序时调用。
下面是我的代码onDestroy():
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            ((ActivityManager) getActivity().getSystemService(Context.ACTIVITY_SERVICE))
                    .clearApplicationUserData();
    }
我编写了在onDestroy()调用时删除数据和缓存的代码,所以如果有人按下后退按钮,数据和缓存会清除并且应用程序关闭(而不是进入后台)但是当我从最近的应用程序或应用程序管理器关闭它时数据和缓存仍然存在。
如何在我的应用程序关闭时删除数据?
我发现 Ondestroy() 仅在按下后退按钮时调用,而不是在使用最近的应用程序(通过按十字或滑动应用程序)或应用程序管理器关闭应用程序时调用。
onDestroy()可能会或可能不会对任何给定的活动或服务进行调用。一般规则是要么 onDestroy()被调用,要么你的进程被终止,要么你的代码崩溃。
应用程序关闭时如何删除数据?
你没有。您的进程可能会因任何原因随时被用户或操作系统终止。onDestroy()发生这种情况时,您可能会也可能不会被召唤。虽然你可以通过一点点地提高你的成功率onTaskRemoved()上Service,这本身就已经证明不可靠的,它不会涵盖所有情形。
如果您不想在进程终止时将数据保存在文件中,请不要首先创建文件。只需保留内存中的数据即可。
| 归档时间: | 
 | 
| 查看次数: | 5181 次 | 
| 最近记录: |