さて、私のアプリケーションでは、startActivityforResultとしてAndroidのデフォルトのカメラとギャラリーを使用しています。
Intent i = new Intent("android.intent.action.PICK",
MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
i.setType("image/*");
startActivityForResult(i, this.SELECT_PICTURE);
onActivityResultもキャッチできます。ただし、メモリが少なく、このアクティビティを開始すると、システムが親アクティビティを強制終了し、アクティビティが値を返しても、すべてのローカル変数を失いました(そして、onCreate()が再度呼び出されます)。onResume()のみを再度呼び出す必要があります。
何度か試しましたが、メモリの問題に関係していると確信しています。十分なメモリがある場合、プロセスは正常に実行されます。どうすればこの動作を防ぐことができますか?
Androidはフォアグラウンドでアプリケーションを強制終了しないので、この機能を引き続き使用できますか?私の問題はこれとほとんど同じだと思います。
解決
Yahelが提供するソリューションに加えて、次の方法を使用できます。
@Override
public void onSaveInstanceState(Bundle savedInstanceState){
super.onSaveInstanceState(savedInstanceState);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState){
super.onRestoreInstanceState(savedInstanceState);
}