Android onActivityResult不是';没有被触发

Android onActivityResult不是';没有被触发,android,android-intent,startactivityforresult,Android,Android Intent,Startactivityforresult,我正在尝试将数据从一个活动传递到另一个活动,但未触发onActivityResult。使用名为MainActivity的启动活动,我可以查看图像库,然后使用这段代码触发onActivityResult Intent i = new Intent( Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

我正在尝试将数据从一个活动传递到另一个活动,但未触发onActivityResult。使用名为MainActivity的启动活动,我可以查看图像库,然后使用这段代码触发onActivityResult

  Intent i = new Intent(
                    Intent.ACTION_PICK,
                    android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

            startActivityForResult(i, RESULT_LOAD_IMAGE);
从另一个活动我有这段代码

 gridLayout.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent intent =new Intent();
            setResult(RESULT_OK,intent);
            intent.setClass(getApplicationContext(), MainActivity.class);
            intent.putExtra("someData",id);
            finish();

        }
    });
gridLayout.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
意图=新意图();
设置结果(结果正常,意图);
setClass(getApplicationContext(),MainActivity.class);
intent.putExtra(“someData”,id);
完成();
}
});
这也会在MainActivity中调用onActivityResult,但下一行代码不会

   gridLayout.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Intent intent = new Intent();
            intent.setClass(getApplicationContext(), MainActivity.class);
            intent.putExtra("someData",id);
            startActivityForResult(intent, 2);
        }
    });
gridLayout.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
意图=新意图();
setClass(getApplicationContext(),MainActivity.class);
intent.putExtra(“someData”,id);
startActivityForResult(意向书,2);
}
});
我已经查看了清单文件,一切都设置正确。我曾看到有人建议使用android:noHistory=“false”,但我的清单中没有这些设置。它很简单,看起来像这样

  <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true">

    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/CustomTheme"
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".ImageRollActivity"
        android:theme="@style/GridTheme"
        android:label=" Image Roll"
        android:parentActivityName=".MainActivity"
        >
    </activity>


如果有人对为什么不触发此事件有任何见解,我们将不胜感激

在第二个示例中,您调用的是
startActivityForResult()
,而不是
setResult()
(如第一个示例所示)

调用
startActivityForResult()
将启动该活动,这意味着将重新创建该活动并执行该过程


setResult()
是在第二个示例中调用
startActivityForResult()
而不是
setResult()
(如第一个示例中所示),它需要调用
onActivityResult()

调用
startActivityForResult()
将启动该活动,这意味着将重新创建该活动并执行该过程


setResult()
是它调用activityresult()所需的
onActivityResult()

我以前读过该活动生命周期,但从未读过startActivityForResult。读完这一部分后,我觉得现在问这个问题像个白痴,哈哈,但是谢谢你的回答!没问题。它发生了:我以前读过活动生命周期,但从未读过startActivityForResult。读完这一部分后,我觉得现在问这个问题像个白痴,哈哈,但是谢谢你的回答!没问题。它发生在:D