活动返回错误的requestCode

时间:2018-11-09 18:49:37

标签: java android android-intent android-activity

我有4个活动A -> B-> C -> D

从活动D中我想回到B

这是代码

manifest:
<activity android:name=".GetAttendance" android:launchMode="singleTask"/>

Activity D
Intent intent = new Intent(AddNewGuest.this, GetAttendance.class);
                    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    intent.putExtra("guest", temp);// temp is an object
                    setResult(600, intent);
                    startActivity(intent);

关于活动B,我正在打电话:

      protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        System.out.println("requestCode:"+requestCode+"  resultCode:"+resultCode);
}

但是我收到的requestCode等于 1000 ,它是我发送给它的 600

但是,当活动B调用C时,在转到D之前,我将请求代码设置为1000 startActivityForResult(intent, 1000);

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您发送的requestCode为1000,可以从您的startActivityForResult(intent, 1000);语句中看到

您原本希望是600,但是调用setResult(600, intent);会将结果代码设置为600

这是不同的,因为您期望输入请求代码,而600则是结果代码

https://developer.android.com/reference/android/app/Activity#setResult(int,%20android.content.Intent)