BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #16511同步于 2014/9/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖

Activity中onstop();onPaused()方法的疑问

aName
2014/9/22镜像同步16 回复
在一篇博客中看到一下的话 需要注意的是:onstop()中onSaveInstanceState()方法不保证一定会被调用,所以在这个方法里你只应该保存一些临时变量(如UI的状态),而不要去保存一些需要持久化的数据。相反,你应该在onPaused()方法里保存需要持久化的数据(例如保存到数据库里的数据)。 请问:onPaused()方法系统不会自动调用onSaveInstanceState()吗?为什么onPaused()方法里保存需要持久化的数据呢?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
dss886机器人#1 · 2014/9/22
onPause()是唯一一个保证在进程被杀之前会调用的方法 【 在 aName (昵称) 的大作中提到: 】 : 在一篇博客中看到一下的话 : 需要注意的是:onstop()中onSaveInstanceState()方法不保证一定会被调用,所以在这个方法里你只应该保存一些临时变量(如UI的状态),而不要去保存一些需要持久化的数据。相反,你应该在onPaused()方法里保存需要持久化的数据(例如保存到数据库里的数据)。 : 请问:onPaused()方法系统不会自动调用onSaveInstanceState()吗?为什么onPaused()方法里保存需要持久化的数据呢? : ...................
aName机器人#2 · 2014/9/22
那它会自动调用onSaveInstanceState()吗? 【 在 dss886 (打击楼主) 的大作中提到: 】 : onPause()是唯一一个保证在进程被杀之前会调用的方法 通过『我邮2.0』发布
dss886机器人#3 · 2014/9/23
不一定啊,系统销毁Activity的时候才会调用 用户主动的比如按Back键则不会调用 这与onPause()还是onStop()没有关系 简单说就是,如果一个界面放在后台被系统回收了 用户切进去的时候,系统会尝试恢复这个界面, 用到的是onSaveInstanceState()。 如果是用户主动Back的,用户不期望下次进来的界面跟上次一样, 那么就没有调用onSaveInstanceState(),下次肯定是重新加载的。 onSaveInstanceState()只是用来恢复状态的。 如果你有些数据需要保持到数据库,写入文件等(持久化), 就需要写在onPause()里。 【 在 aName (昵称) 的大作中提到: 】 : 那它会自动调用onSaveInstanceState()吗? : 【 在 dss886 (打击楼主) 的大作中提到: 】 : 通过『我邮2.0』发布 : ...................
icyfox机器人#4 · 2014/9/23
你都在啥地方用。。 我咋从来没用过.. 【 在 dss886 (打击楼主) 的大作中提到: 】 : 不一定啊,系统销毁Activity的时候才会调用 : 用户主动的比如按Back键则不会调用 : 这与onPause()还是onStop()没有关系 : ...................
sollian机器人#5 · 2014/9/23
可能是旋转屏幕了吧。。不过我也很少用 【 在 icyfox 的大作中提到: 】 : 你都在啥地方用。。 : 我咋从来没用过.. :
aName机器人#6 · 2014/9/23
【 在 dss886 的大作中提到: 】 : 不一定啊,系统销毁Activity的时候才会调用 : 用户主动的比如按Back键则不会调用 : 这与onPause()还是onStop()没有关系 : ................... 既然onSaveInstanceState()的调用是由系统决定的,那是不是不论onPaused();或onStop()中都应该去存储一些UI的状态呢?毕竟onSaveInstanceState()方法不保证一定会被调用。
a206206机器人#7 · 2014/9/23
onSaveInstanceState不一定会被调用。比如一路back,这个时候邮件草稿应该在onPause里面被保存。另外,注意,那个博客里面的话本身就有问题。
aName机器人#8 · 2014/9/23
【 在 a206206 的大作中提到: 】 : onSaveInstanceState不一定会被调用。比如一路back,这个时候邮件草稿应该在onPause里面被保存。另外,注意,那个博客里面的话本身就有问题。 他还有一句话是:“ 在暂停状态下的activity,因其activity信息完整保存在内存里且保持与窗口管理器的连接,所以可以直接调用onRestart()方法还原activity。”pause()对应的不应该是onResume()来恢复吗?难道可以直接跳到onRestart()???
a206206机器人#9 · 2014/9/23
onrestart必然是在onStop的后面