我正在使用来自按钮处理程序的startActivityForResult()启动一个活动,并且甚至在命中目标活动的onCreate()之前,我的onActivityResult()都会被立即调用.
public void onGraphNext (View target) {
Intent i = new Intent(this, AddCommentActivity.class);
startActivityForResult(i,6); // 6 is arbitrary request code
}
. . .
protected void onActivityResult(int requestCode, int resultCode,
Intent returnData) {
if ( (resultCode == RESULT_OK) && (requestCode == 6) ) {
Bundle extras = returnData.getExtras();
comment = extras.getString("comment");
}
}
返回的结果代码为0,请求代码为6.在StackOverflow的其他地方,我见过人们报告此问题,解决方案是对清单中的launchMode不使用singeInstance.但是我正在使用standard. . .
android:configChanges="orientation"
android:screenOrientation="portrait"
android:launchMode="standard">
预先感谢您的任何见解!
编辑:我做了一个简单的测试程序,当调用方(“ launcher”)-具有onActivityResult的活动是singleInstance并且被调用的Activity(“ launchee”)是标准的时,我可以可靠地重现该问题.即,
android:screenOrientation="portrait"
android:launchMode="singleInstance">
android:screenOrientation="portrait"
android:launchMode="standard">
这对我来说是个问题,因为在实际应用中,由于其他原因,被调用者必须是singleInstance,但是它希望具有按钮来启动其他活动以请求用户输入.如果我不能使用startActivityForResult,该怎么办?