我在我的应用中使用onDestroy方法清理数据。
Google的文档说documentation
注意:不要指望此方法被称为保存位置 数据!例如,如果活动正在编辑内容中的数据 提供者,这些编辑应在onPause()或 onSaveInstanceState(Bundle),不在这里。这种方法通常是 实施以释放与线程相关联的资源(如线程) 活动,这样被破坏的活动就不会留下这些东西 其余的应用程序仍在运行时。 有 系统将简单地终止活动托管的情况 无需调用此方法(或其他任何方法)进行处理,因此 不应该用来做打算保留的事情 该过程消失后。
这种情况使应用程序从最近的任务列表中滑出。
因此,在这种情况下,数据和其他用户重要信息必须保存在onPause或orStop()中。
但是根据此link,没有生命周期被调用。
那我们应该在哪里保存数据?
答案 0 :(得分:0)
但是根据此链接,没有生命周期被调用。
该答案有些令人误解。当用户调出概览屏幕(近期任务列表)时,您的前台活动不应再出现在前台。结果将在该活动上调用onPause()
和onStop()
。您可以通过覆盖onPause()
和onStop()
并记录他们的呼叫来进行测试。
那我们应该在哪里保存数据?
这在很大程度上取决于您要构建的东西。
在某些情况下,请在数据更改时保存数据,并且用户指示他们要保留此数据。
在某些情况下,请定期保存数据。例如,在游戏中,您可能经常保存游戏状态,以便用户可以从上次停止的地方取游戏。
在某些情况下,可以将生命周期方法(例如onStop()
)用作数据保存触发器,但有时不行。说“我们将保存用户在用onStop()
致电时输入的内容”可能会很好。说“当我们接到onStop()
的电话时,我们将继续向用户的信用卡收费”。