Ранний вызов Android onActivityResult

У меня есть 2 действия, каждое в отдельных приложениях. У Activity1 есть кнопка, которую пользователь может нажать, и она вызывает второе действие, используя намерение в своем методе onClick():

Intent myIntent = getPackageManager().getLaunchIntentForPackage(com.myProject.Activity2);
startActivityForResult(myIntent, 600);

. Это правильно запускает Activity2 из Activity1, но onActivityResultвызывается в Activity1 до того, как onCreateвызывается в Activity2, вместо onBackPressed(), где я установил намерение возврата.

Вот метод onCreateдля Activity2:

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

Вот текущая версия метода onBackPressedдля Activity2:

@Override
public void onBackPressed() {
    Intent intent = new Intent();
    intent.putExtra("Stuff", someStuff);

    if(getParent()==null){
        setResult(Activity.RESULT_OK, intent);
    }else{
        getParent().setResult(Activity.RESULT_OK, intent);
    }
    finish();
    super.onBackPressed();
}

Мой AndroidManifest.xml имеет следующий фильтр намерений для Activity2:


    
    

Я проверил, что мой launchModeравно standard(, а не singleTaskи т. д. ), как указано здесь , и мой код запроса не является отрицательным, как предупреждалось здесь . Я также пытался android:launchMode="singleTop", но и это тоже не-не удалось.

Я также пытался не вызывать finish()в onBackPressed()для Activity2, как упоминалось здесь(также просто super.onBackPressed(), как было предложено здесь ), и снова вызывать его, как было предложено здесь .

Кроме того, я попытался закомментировать строку intent.putExtra("Stuff", someStuff);, так как она создавала проблемы для этого человека .

Есть идеи, что я делаю не так?

8
задан Community 23 May 2017 в 11:53
поделиться