我正在学习 Android活动生命周期,我对某些主题感到非常困惑。即使在这个论坛上,我也发现了与其他文件/书籍相反的文件/书籍。
例如,我购买的书中指出:“onPause()
... 应该在此方法中采取措施来存储活动所需的任何持久数据(例如存储到内容提供商的数据,数据库或文件) ...
另一方面,android official guidelines状态“onPause()
执行非常简短,并且没有足够的时间执行保存操作。因此,您不应该使用onPause( )保存应用程序或用户数据,进行网络调用或执行数据库事务;此方法可能无法在方法完成之前完成。而是您应该在onStop()期间执行重负载关闭操作“
但是,我们知道onStop()
不一定每次都被调用!!!
谁是对的?
提前谢谢。
答案 0 :(得分:1)
只需在控制标志的方法中节省开支。 例如
public void method(){
if (!done){
[...] savings
}
done = true;
}
并在onPause()
和onStop()
中调用它。因此,如果方法到达结束,则完成为真,因此不会执行第二次调用,否则onStop()
将执行您所需的操作。
这是我的“解决方案”,我认为,这可能是错误的:)