pjv*_*pjv 7 lifecycle android dialog onstart onresume
您是否应该通过光标获取数据并填写屏幕上的数据,例如设置窗口标题,onStart()或onResume()?
onStart()似乎是合乎逻辑的地方,因为在onStart()活动已经可以显示之后,尽管在后台.值得注意的是,我遇到了托管对话框的问题,这让我重新考虑了这一点.如果用户旋转屏幕,而对话仍然是开放的,onCreateDialog()并且onPrepareDialog()被称为之间 onStart()和onResume().如果对话框需要基于您之前需要拥有数据的数据onResume().
如果我是正确的onStart()那么为什么Notepad示例通过这样做给出了一个坏的例子onResume()?请参阅http://developer.android.com/resources/samples/NotePad/src/com/example/android/notepad/NoteEditor.html NoteEditor.java第176行(title = mCursor.getString...).
此外,如果我的Activity启动另一个Actvity/Dialog,它会更改我的光标正在跟踪的数据.即使在最简单的情况下,这是否意味着我必须手动更新我之前的屏幕(主要活动中的对话框的监听器),或者我必须注册ContentObserver,因为我不再更新数据onResume()(虽然我当然可以更新两次)?
我知道这是一个基本的问题但是最近的对话令我意外,让我意识到这一点.
要回答有关 NoteEditor 的问题,只需看一下您引用的那一行上方的行,您就会看到...
// Requery in case something changed while paused (such as the title)
mCursor.requery();
Run Code Online (Sandbox Code Playgroud)
评论似乎已经解释了一切。虽然我自己没有完成 NotePad 示例,但作者似乎正在构建在 NoteEditor 暂停(然后恢复)时从更改中恢复的能力。
正如 GSree 所解释的(当我输入此内容时),没有正确或错误的答案,它仅取决于 Activity 生命周期的哪个点需要完成什么操作。
| 归档时间: |
|
| 查看次数: |
5688 次 |
| 最近记录: |