私には2つのアクティビティがあり、それぞれが別々のアプリケーションにあります。Activity1には、ユーザーがクリックできるボタンがあり、onClick()
メソッドのインテントを使用して2番目のアクティビティを呼び出します。
Intent myIntent = getPackageManager().getLaunchIntentForPackage(com.myProject.Activity2);
startActivityForResult(myIntent, 600);
これにより、Activity1からActivity2が正しく起動されますが、リターンインテントを設定した場所ではなく、Activity2で呼び出されるonActivityResult
前にActivity1で呼び出されます。onCreate
onBackPressed()
Activity2のonCreate
メソッドは次のとおりです。
@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用の次のインテントフィルターがあります。
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
私はここでアドバイスされているように自分launchMode
がstandard
(ではなく)であることを確認し、ここで警告されているようにリクエストコードが負ではないことを確認しました。私も試してみましたが、それもダメでした。singleTask
android:launchMode="singleTop"
finish()
また、ここで説明したようにonBackPressed()
Activity2を呼び出さずに(ここsuper.onBackPressed()
でも提案されているように)、ここで提案されているように再度呼び出してみました。
また、この人intent.putExtra("Stuff", someStuff);
に迷惑をかけているようで、コメントアウトしてみました。
私が間違っているかもしれないことについて何か考えはありますか?