2016-08-03 18 views
1

私はMainActivityを持っており、カメラアプリケーションを起動して写真をアップロードできます。家に長時間押し込んだ後、カメラアプリに戻り、後ろに戻るとカメラアプリに戻ります。どのように私はMainActivityに戻るか、ランチャーアイコンをクリックした後でも、どうしていつも戻れますか?Android - 返信からタスクを再開した後MainActivityに戻る

私のカメラアプリの意図:たManifest.xmlフォルダあなたの主な活動のマニフェストで

答えて

0

ザこれを行うための正しい方法はIntentあなたはこのように、カメラを起動するために使用するにFLAG_ACTIVITY_NO_HISTORYを追加することです:

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    cameraIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
    path = Utils.getOutputMediaFileUri(getApplicationContext()); 
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, path); 
    startActivityForResult(cameraIntent, Constant.CAMERA_REQUEST); 

NO_HISTORYフラグを追加することで、あなたはカメラActivityがままにしたくないのAndroidを伝えます歴史的な痕跡。ユーザーがカメラActivityから移動すると(ホームボタンを押すか、電話をかけるなど)、カメラActivityは直ちに終了します。ユーザーがあなたのアプリに戻ると(最近のタスクのリストから選択するか、HOME画面でアプリのアイコンを押す)、カメラActivityは上に表示されなくなります。

+0

お返事ありがとうございます!今のところ最高の解決策は、すべて私が望むように動作しますが、問題があります。最も一般的なケースでは、私がMainActivityからcameraIntentを起動するとき - >保存します - > onActivityResult()メソッドでRESULT_CANCELEDを受け取ります何らかの理由で。さらに、私はいつもこのインテントフラグでRESULT_CANCELEDを受け取ります。どうして?結果を返す前にカメラアクティビティは終了しますか? –

+0

これは問題になる可能性があります。この状況は非常に複雑です。なぜあなたはこの行動を望んでいますか?標準的な振る舞いは、ユーザがカメラを上にしてあなたのアプリを離れた場合、カメラの「Activity」に戻ることです。 –

+0

私はこのコードを単純な仕組みで試してみました。ここでカメラを起動して写真を撮影し、 'onActivityResult()'( 'EXTRA_OUTPUT'を指定せずに)に戻します。これはうまくいき、RESULT_OKと写真が戻ってきます。カメラの「アクティビティ」が写真を保存するための他の「アクティビティ」を起動している場合、これはあなたが見ている問題を引き起こす可能性があります。 –

0

android:excludeFromRecents="true" 
android:launchMode="singleTask" 
+0

http://stackoverflow.com/questions/5223897/shortcut-from-recent-applications-always-launch-latest-activity-of-applicationこの投稿はすべてあなたの質問に答えます –

+0

ありがとうございますが、これはうまくいかない。私はまだrecentsからカメラアプリに戻ります。カメラのインテントコードを追加します。 –

+0

リンクされた質問に欠陥があります。答えはほとんど間違っており、OPの実際の問題が解決されません。 –

0

であなたの主な活動

android:launchMode="singleTask" 

private void showCamera() { 
    try { 
     Intent cameraIntent = new Intent(
     android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 

     path = Utils.getOutputMediaFileUri(getApplicationContext()); 

     cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, path); 

     startActivityForResult(cameraIntent, Constant.CAMERA_REQUEST); 
    } catch (ActivityNotFoundException ex) { 
    } catch (Exception ex) { 
    } 

} 
+0

ありがとう、これは解決の一種ですが、正確には私が望むものではありません。これは私のアプリケーション全体をrecentsから除外します。私はそれを望んでいない、私はちょうどアイコンとrecentsからMainActivityに戻りたい。 –

関連する問題