14

次のように呼び出すアクティビティからカメラにインテントを送信しています。

 Intent testphoto = new Intent(Dashboard.this,CameraHandler.class);
 startActivity(testphoto);

CameraHandlerクラスでは、カメラを呼び出します。

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(intent, 0);

ただしonActivityResult、クラスで呼び出される前にCameraHandler、アクティビティは破棄されます。これを防ぐ方法はありますか?

答えが見つかりました:私はnoHistory="true"自分の中にいてAndroidManifest、結果の前にOSがアクティビティを破壊しました。

4

3 に答える 3

42

「アクティビティを保持しない」開発者設定がオンになっていないことを確認してください。これにより、終了しようとしているアクティビティが破棄されます。

于 2013-11-17T22:55:42.340 に答える
4

Activityを呼び出すときに呼び出しが破棄されることを心配する必要はありません。startActivityForResult()これは、予想される動作をまったく変更しないためです (つまり、子アクティビティは、親が破棄されているかどうかに関係なく、親に結果を返すことを覚えています)。 . この投稿を参照してください。

また、 が破棄されるのを防ぐ必要がある場合もありますが (つまり、構成の変更など)、一般的にはライフサイクルをそのままにして、システムにバックグラウンドの を管理させActivityたいと考えています。新しい を起動したら、以前の が破棄されるのを明示的に妨げてはなりません。ActivityActivityActivityActivity

于 2012-05-02T17:46:52.427 に答える
-2

マニフェストで次のように言及する必要があります

 android:persistent="true"

以下のSO投稿は同じ質問に答えます

BACK キーから、アクティビティを破棄するのではなく、停止させる方法は?

onPause() の後に onDestroy() の呼び出しを防ぐ方法は?

活動が破壊されるのを可能な限り防ぐ

于 2016-03-04T07:16:45.367 に答える