У меня есть 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);
, так как она создавала проблемы для этого человека .
Есть идеи, что я делаю не так?