5

メイン アクティビティ (Main) と、Main から呼び出される別のアクティビティ (Sub) があります。

startActivityForResult(new Intent(this, SubActivity.class), 25); 

Sub でプロセスを強制終了し (タスク マネージャーまたは を使用adb shell kill <pid>)、アプリケーションを再度開くと、すぐに Sub に移動します。

Sub には、Main アクティビティにコールバックする次のコードがあります。

setResult(RESULT_OK, data);
finish();

プロセスを強制終了しなければ、requestCode (25)、resultCode (RESULT_OK)、およびデータを受け取っていたはずonActivityResultです。ただし、この場合、メイン アクティビティに移動しますが、onActivityResult 呼び出されません。

これは Android の仕組みですか (私は期待していません)、それとも私のアプローチに何か問題がありますか?


更新: これは私の Nexus One、CyanogenMod 7.0.2、Android 2.3.3 で発生しました。エミュレータ API 10、Android 2.3.4 を使用してみましたが、期待どおりに動作onActivityResultし、プロセスを強制終了した後も呼び出されます。

4

2 に答える 2

0

onActivityResult問題は、なぜ呼び出されないのかではなく、アプリを強制終了したときに 2 番目がまだ生きている理由だと思います。どのメソッドが呼び出されているかを確認するためだけに、メインとサブのライフサイクル メソッドにトースト メッセージを入れましたか?

于 2011-06-13T09:29:25.967 に答える