我正在编写一个应用程序,使用 onSaveInstance(..)来保留设备配置更改的值(比如设备字体,本地)。
这里的应用程序Activity使用多个Fragment来显示。当配置中的chnage在返回到应用程序时更改然后onCreate(..)执行并且应用检查 Bundle 对象是否为null。现在直到这个状态app 没有设置任何Fragment子回来但是仍然最后设置Fragment(在更改配置之前),child开始执行它的生命周期方法。
如何防止它,从Fragment child检查Same Bundle对象的一种方法,与Activity和return相同。但是还有其他方法可以在设备配置更改时从Activity中删除子项!
处理重新调用的活动参考代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.reading_activity);
if(savedInstanceState == null) {
init(savedInstanceState);
} else {
// Don't do anything
}
}
这里init(..)负责设置Fragment child。