我正在尝试在后台被杀死后恢复我的应用程序。尝试访问“config”变量时它总是崩溃,因为它是空的,即使它已经保存在 onSaveInstanceState 上(它总是这样,我已经在调试模式下对其进行了测试,并且外州在它的地图中有对象)。
真正让我感到困惑的是,这在旋转情况下非常有效。所以我认为从包裹中构造对象没有任何问题。当我在后台终止应用程序时,它只是不起作用。
当我在后台杀死应用程序后在 onCreate 中记录 savedInstanceState 时,Config.BUNDLE 返回 null=null(无键,无值),但类似对象的 Account.BUNDLE 完好无损。
此外,我尝试将另一个 String 对象添加到 savedInstanceState 并且它也被正确保存。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
Config config = savedInstanceState.getParcelable(Config.BUNDLE);
Config.setInstance(config);
Account account = savedInstanceState.getParcelable(Account.BUNDLE);
Account.setInstance(account);
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putParcelable(Config.BUNDLE, Config.getInstance());
outState.putParcelable(Account.BUNDLE, Account.getInstance());
}