哪里保存应用程序或用户数据? onPause()或onStop()

时间:2017-03-09 13:33:28

标签: android android-activity activity-lifecycle

我正在学习 Android活动生命周期,我对某些主题感到非常困惑。即使在这个论坛上,我也发现了与其他文件/书籍相反的文件/书籍。

例如,我购买的书中指出:“onPause() ... 应该在此方法中采取措施来存储活动所需的任何持久数据(例如存储到内容提供商的数据,数据库或文件) ...

另一方面,android official guidelines状态“onPause()执行非常简短,并且没有足够的时间执行保存操作。因此,您不应该使用onPause( )保存应用程序或用户数据,进行网络调用或执行数据库事务;此方法可能无法在方法完成之前完成。而是您应该在onStop()期间执行重负载关闭操作

但是,我们知道onStop()不一定每次都被调用!!!

谁是对的?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

只需在控制标志的方法中节省开支。 例如

public void method(){
  if (!done){
     [...] savings
  }
  done = true;
}

并在onPause()onStop()中调用它。因此,如果方法到达结束,则完成为真,因此不会执行第二次调用,否则onStop()将执行您所需的操作。

这是我的“解决方案”,我认为,这可能是错误的:)