即使调用了 setResult,也不会调用 onActivityResult

onActivityResult is not called even though setResult is called

我在里面有一个 activity 保存片段 (MainActivity.java),片段 (ItemFragment.java) 有显示一些项目的 recyclerview。当一个项目被点击时,它会为结果启动一个 activity (ViewActivity.java)。但是,不会调用 (MainActivity.java) 中的 onActivityResult 方法。这是我的代码

ViewHolder class 中的 OnClick 方法在单击项目时启动新的 activity

@Override
public void onClick(View v) {
      Intent i;

      // activity is an instance of AppCompatActivity class (MainActivity.java)
      i = new Intent(activity, ViewActivity.class);

      activity.startActivityForResult(i, SyncTask.REQ_CODE);
}

发送结果的ViewActivity中的代码

@Override
public boolean onOptionsItemSelected(MenuItem item) {
        ....
        resultData=new Intent();
        resultData.putExtra(SyncTask.KEY_ACTION, action);
        resultData.putExtra(SyncTask.KEY_POSITION, m.getAdapterPosition());


        setResult(Activity.RESULT_OK,resultData);
        finish();

        return true;
}

MainActivity.java

中的 onActivityResult 方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    int action;
    int[] positions;

    if (requestCode == SyncTask.REQ_CODE) {
        if (resultCode == Activity.RESULT_OK) {
            // Handle action

        }
    }
}

清单文件

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity android:name=".activity.MainActivity" android:theme="@style/AppTheme.NoActionBar" android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity android:theme="@style/Theme.AppCompat.Light" android:name=".activity.PreferencesActivity"></activity>
    <activity android:theme="@style/AppTheme.NoActionBar" android:name=".activity.SignInActivity" android:label="@string/sign_in"></activity>
    <activity android:theme="@style/AppTheme.NoActionBar" android:name=".activity.ViewMailActivity"></activity>
</application>

我找到问题了。我的请求代码为负,根据纪录片,如果请求代码小于 0,则不会发送结果。