rei*_*ley 8 android android-fragments
在应用程序中,只要片段失去焦点(即在其上打开另一个活动/片段),就会onSaveInstanceState()调用它.
同样是在提到开发者指南.
我正在尝试使用这个approch来恢复我的片段的状态.我的目的是把这种bundle在onActivityCreated(),当恢复片段.
虽然onSaveInstanceState在片段失去焦点之前被调用.但是,当onActivityCreated()它被调用时,它会将Bundle savedInstanceStateas 还原为null.
如何从捆绑包中获取数据.
码:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
MyListAdapter adapter = new MyListAdapter(getActivity(),
R.layout.my_row, titles, icons, this);
setListAdapter(adapter);
if (savedInstanceState != null) {
// Never goes inside this condiiton.
// Restore last state for checked position.
mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("curChoice", mCurCheckPosition);
}
Run Code Online (Sandbox Code Playgroud)
那么这意味着您的 Activity 和 Fragment 只是暂停了,不必保存它们的实例状态(onSaveInstanceState()不一定被调用)。
如果您想确保onSaveInstanceState()被调用,请在设备的开发人员设置中选择“不保留活动”。然后,每次暂停活动时,系统都会杀死它,强制调用onSaveInstanceState()(当然,当您按回键时除外)
| 归档时间: |
|
| 查看次数: |
1989 次 |
| 最近记录: |