1

我有 MainActivity,我可以在其中启动相机应用程序来拍摄和上传照片。在相机应用程序中长按主页并从最近返回后,我返回相机应用程序。如何始终从最近或启动器图标单击后返回 MainActivity?

我的相机应用意图:

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) {
    }

}
4

3 回答 3

0

在你的主要活动中

android:launchMode="singleTask"

在 Manifest.xml 文件夹中

于 2016-08-04T00:03:41.817 回答
0

在您的主要活动清单中

android:excludeFromRecents="true" 
android:launchMode="singleTask"
于 2016-08-04T07:53:35.747 回答
0

执行此操作的正确方法是添加FLAG_ACTIVITY_NO_HISTORYIntent用于启动相机的 中,如下所示:

    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标志,您告诉 Android 您不希望相机Activity留下历史痕迹。当用户离开相机时Activity(即:通过按下 HOME 按钮,或接听来电),相机Activity将立即完成。当用户然后返回到您的应用程序(通过从最近的任务列表中选择它,或者通过按主屏幕上的应用程序图标)时,相机Activity将不再位于顶部。

于 2016-08-05T11:44:42.443 回答