因为我正在构建的应用程序将处理相当敏感的数据,所以我想在每次用户登录时将 SQLite 数据库与服务器同步,并在每次应用程序失去焦点时删除数据库(因为用户移动到主屏幕或另一个应用程序)。
看到Activity 生命周期,我的想法是通过在每个 Activity 的 onDestroy 中清空数据库来做到这一点。为了测试所描述的生命周期,我只需覆盖所有生命周期方法(onCreate、onStart、onResume、onPause、onStop 和 onDestroy),在其中包含一些日志消息,然后启动我的应用程序。
日志消息包含在我的 SettingsActivity 中。当我进入我的应用程序并移动到设置时,它会运行 onCreate、onStart 和 onResume(如预期的那样)。然后,当我单击一个设置并移至下一个屏幕时,它会运行 onPause 和 onStop(仍如预期的那样)。要返回设置屏幕,我单击后退按钮,它会再次运行 onStart 和 onResume(仍然如预期的那样),当我现在再次单击后退按钮返回初始屏幕时,它(令我惊讶的是)运行 onPause, onStop 和 onDestroy。
所以我的问题;
- 为什么在应用程序未完成时会销毁 Activity?
- 更重要的是:当应用程序关闭或失去焦点时,我如何运行我的 CleanUp 方法?