jel*_*ish 5 android kill activity-lifecycle android-activity
atm我试着让我的应用程序解决"onSaveInstanceState"和"onRestoreInstanceState",但是我越深入,问题就越多.
所以,例如,我刚刚意识到,通过这两个函数恢复一个活动是没有用的.因为,如果我按下后退按钮并返回之前的活动,这个没有得到它的"savedInstanceState"包,而是完全重新创建.
有没有办法恢复整个应用程序而不只是一个活动?或者这只是一个奇怪的设计,我甚至不打扰恢复一个活动?
亲切的问候,水母
编辑:好的,傻我...
我的主要活动所获得的包不是空的,而只是在"onRestore ..."中.在"onCreate"中它确实是空的,但这一直是真的.(例如,无论我是否在杀人后从另一项活动中回来)
所以现在我以另一种方式感到困惑:我之前在另一个活动中测试了这个,并且在那里,savedInstanceState包的"onCreate"和"OnRestoreInstanceState"在哪里相同!这只是随机或主要活动的特殊内容吗?(尝试了不同的发射模式,但它们没有影响).
所以,例如,我刚刚意识到,通过这两个函数恢复一个活动是没有用的.
不,如果使用得当,它非常有用.
因为,如果我按下后退按钮并返回之前的活动,这个没有得到它的"savedInstanceState"包,而是完全重新创建.
不,它没有.
如果它已经存在且位于后台堆栈上,它将被启动(onStart())并恢复(onResume()),但它不会被创建.如果Android必须关闭之前的活动(例如,由于内存不足),将创建先前的活动(onCreate())并传递Bundle包含其填充的数据的活动onSaveInstanceState().
这些陈述不正确的唯一方法是使用BACK按钮处理进行修改.
有没有办法恢复整个应用程序而不只是一个活动?
没有.
或者这只是一个奇怪的设计,我甚至不打扰恢复一个活动?
你当然应该恢复一项活动.
onSaveInstanceState() 用于两种情况:
onSaveInstanceState()将数据从旧活动实例传递到新活动实例.我之前在另一个活动中测试了这个,并且在那里,savedInstanceState包的"onCreate"和"OnRestoreInstanceState"在哪里相同!
当然.他们应该是一样的.如果活动是从头开始创建的,onCreate()将被传递null并且onRestoreInstanceState()不会被调用.但是如果有实例状态,则state(Bundle)将传递给两者onCreate()和onRestoreInstanceState().
这只是随机或主要活动的特殊内容吗?
都不是.他们应该是一样的.
| 归档时间: |
|
| 查看次数: |
4406 次 |
| 最近记录: |