在做点击跳转到另外一个Activity的时候,onActivityResult方法被提前调用,部分代码如下。
fbSave.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(v.getContext(), AskQuestionActivity.class);
startActivityForResult(intent, UIHelper.INTENT_ASK_QUE_2);
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.i("AskQuestionActivityView", "requestCode:" + requestCode + " resultCode:" + resultCode + " data:" + data);
// resultCode + " data:" + data);
if (resultCode != RESULT_OK)
return;
if (requestCode == UIHelper.INTENT_ASK_QUE) {
new GetDataTask().execute();
return;
}
}
在跳转的时候,onActivityResult就被调用了。网上找到,导致的原因是Activity的启动模式出现了问题,xml中配置的
<activity
android:name=".xxxActivity"
android:label="@string/ask_question_list"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:configChanges="keyboardHidden|orientation" >
</activity>
由于设置了
android:launchMode="singleTask"
网上说
Android
:launchMode="singleTop"的时候也会出现,intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)也会出现上面的问题。
解决办法就是删掉这些启动模式,改用默认的就行。