バックグラウンドで強制終了されたアプリを復元しようとしています。「config」変数にアクセスしようとすると、常にクラッシュします。これは、onSaveInstanceState に保存された後でも null であるためです (常に、デバッグ モードでテストし、outstate にはマップ内にオブジェクトがあります)。
私を本当に混乱させているのは、これが回転の場合に完全に機能していることです。したがって、小包からのオブジェクトの構築に問題はないと思います。バックグラウンドでアプリを強制終了すると機能しません。
バックグラウンドでアプリを強制終了した後、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());
}