当前位置 : 主页 > 手机开发 > android >

为什么要在onPause() – onResume()而不是onStop() – onStart()中提交/读取Android数据?

来源:互联网 收集:自由互联 发布时间:2021-06-11
文档建议应在onPause()/ onResume()中提交/读取数据. 然而,当应用程序不再处于前台时,其数据结构保持不变,这表明可以延迟提交/读取数据直到应用程序不再可见,即在onStop()/ onStart()中.特别是
文档建议应在onPause()/ onResume()中提交/读取数据.

然而,当应用程序不再处于前台时,其数据结构保持不变,这表明可以延迟提交/读取数据直到应用程序不再可见,即在onStop()/ onStart()中.特别是因为onStop()保证在onDestroy()之前被调用.

或许这两种方法都适合吗?这里的文档仅仅是一个指导原则吗?

更新
假设您的应用程序需要保存相对较多的数据,比如对大图像进行编辑.然后肯定不会在onPause()/ onResume()中写/读,以免用户体验变得迟钝.在这种情况下,可以选择在onStop()/ onStart()中编写/读取.真的吗?

使用onStop的问题在于你无法保证它何时被调用,因为唯一可靠的是它将在onDestroy之前被调用.如果您等到onStop提交数据,则可能要迟到其他活动才能显示/使用任何这些更改.同样的事情适用于onStart,如果它只是在后台,你的活动可能不需要重新启动,所以你将有过时的数据.使用onResume和onPause可以保证数据始终是最新的,一旦活动进入后台就会进行提交,并且一旦新数据变为可见,就会立即加载.
网友评论