我正在使用來自按鈕處理程式的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,該怎麼辦?