我有两个活动:PictureList 和 AddPictures。从活动 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) {
}
}
}
}
在另一个活动中,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 不起作用。我该如何解决这个问题?