Android - 从最近重启任务后返回 MainActivity

Android - Go back to MainActivity after restarting task from recents

我有 MainActivity,我可以在其中启动相机应用程序来拍摄和上传照片。回到家后,在相机应用程序中长按并 return 从最近的我 return 返回到相机应用程序。我如何总是 return 从最近或点击启动器图标后转到 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) {
    }

}

在你的主activity

android:launchMode="singleTask"

在 Manifest.xml 文件夹中

在您的主要清单中 activity

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

正确的做法是将 FLAG_ACTIVITY_NO_HISTORY 添加到用于启动相机的 Intent 中,如下所示:

    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(即:按下主页按钮,或接听来电 phone)时,摄像头 Activity 将立即完成。当用户然后 returns 到您的应用程序(通过从最近任务列表中选择它,或者通过在主屏幕上按应用程序的图标)时,相机 Activity 将不再位于顶部。