基本的には、ボタンを押すと、カメラ インテントを使用してデフォルトのカメラ アプリが開きます。写真が撮られると、必要なものが保存され、別のアクティビティにリダイレクトされます。
このアクティビティには、写真を正常にアップロードできる AsyncTask があります。それで、あなたが尋ねるかもしれない私の問題は何ですか。私の問題は、アクティビティが再作成されるため、ProgressDialog が一緒にリセットされることです。(アクティビティを実行し、aSyncTask を実行し、完了する前に終了し、アクティビティを再作成して asynctask をもう一度実行します。)
これは常に行われるわけではありません。電話の方向を横から縦に変更するため、これが行われると思います。(私はサムスンを持っています。カメラに行くと横向きに変わり、それを終えると縦向きに戻ります。)
私はすでに宿題をして、これらのものをマニフェストに追加しました:
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait" >
アプリを縦向きに「ロック」したことを確認しましたが、アプリの向きが変わっていることがわかります。これが私のアクティビティが再作成される理由だと思います。
あらゆる種類のチェックを追加することを計画していましたが、アクティビティが再作成されない場合があるため、これはこの状況を処理する正しい方法ではないと思います。
私が話している小切手は、使用することです:
protected void onSaveInstanceState(Bundle outState) {
outState.putString("started", "1");
}
とにかく、誰かが私を助けることができますか?自己破壊することなくアクティビティをロードしたいだけです。
PS: VM に問題はありません。VM はアクティビティを読み込み、再作成せずに終了します。
PPS: 追加のテストを行いました。Samsung でランドスケープ モードのままにしておくと動作します。したがって、向きの変更で私のアクティビティを破壊しているのは間違いなくカメラです。