在测试期间,我注意到有时候我的子活动的finish()没有执行onActivityResult.大多数时候它工作正常,我无法弄清楚,何时以及为什么会出现这个问题.
子活动开始:
public void launchSubActivity(Class<? extends Activity> subActivityClass, Bundle data,
OnSubActivityResult callback) {
Intent i = new Intent(this, subActivityClass);
if(data!=null) i.putExtras(data);
Random rand = new Random();
int correlationId = rand.nextInt();
_callbackMap.put(correlationId, callback);
startActivityForResult(i, correlationId);
}
Run Code Online (Sandbox Code Playgroud)
子活动完成:
public void select() {
Bundle b = new Bundle();
b.putInt("YEAR", year_result);
b.putInt("MONTH", month_result);
b.putInt("DAY", day_result);
this.getIntent().putExtras(b);
this.setResult(RESULT_OK, this.getIntent());
this.finish();
}
Run Code Online (Sandbox Code Playgroud)
onActivityResult(由Nazmul Idris撰写):
/**
* this is the underlying implementation of the onActivityResult method that
* handles auto generation of correlationIds and adding/removing …Run Code Online (Sandbox Code Playgroud)