PictureList と AddPictures の 2 つのアクティビティがあります。アクティビティ PictureList から、次のような結果のアクティビティをリクエストしています。
Intent myIntent = new Intent(PictureList.this, AddPictures.class);
Bundle b = new Bundle();
b.putInt("iEntry", clickCounter);
b.putBoolean("bAddPicture", true);
b.putBoolean("bEditPicture", false);
myIntent.putExtras(b);
startActivityForResult(myIntent,1);
対応する onActivityResult もここで実装しています。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == RESULT_OK){
iReturnedEntry = data.getIntExtra("iReturnedEntry", 0);
}
if (resultCode == RESULT_CANCELED) {
}
}
}
}
もう 1 つのアクティビティである AddPictures では、次のパラメーターを受け取ります。
Bundle b = getIntent().getExtras();
iEntry = b.getInt("iEntry");
bAddPicture = b.getBoolean("bAddPicture", false);
bEditPicture = b.getBoolean("bEditPicture", false);
返さなければならないときは、次のようにします。
Intent returnIntent = new Intent();
returnIntent.putExtra("iReturnedEntry", iEntry);
setResult(RESULT_OK,returnIntent);
通常、アプリケーションは正常に動作しますが、結果が保存されないことがよくあります。何らかのメモリ管理またはその他の理由により、PictureList アクティビティが再作成されているか、アクティビティ AddPictures から戻った後に onCreate メソッドが再度呼び出されているため、onActivityResult が機能していないと思います。この問題を解決するにはどうすればよいですか?