【问题标题】:Activity gets killed after returned from the camera从相机返回后活动被杀死
【发布时间】:2013-09-18 09:54:45
【问题描述】:

在我的应用程序中,我调用系统相机拍照,然后在 onActivityResult 中处理结果。它曾经可以工作,但现在我的通话活动有时会被杀死, 有时效果很好。我需要大图,所以我必须使用intent.putExtra(MediaStore.EXTRA_OUTPUT, output),如果没有这个(比如使用意图数据获取位图),它可以正常工作。 拍照后,单击“确定”按钮,我需要它返回活动 它启动相机,但有时它工作正常,有时父活动已完成。搜索后,我设置了android:alwaysRetainTaskState="true",但这不起作用。 我的系统是 Galaxy S I9000,我也在其他手机上测试过,但效果很好。 有人知道为什么吗? 这是我的代码

  private void startTakePhoto(){
    App.fileNameWithPath = Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator + System.currentTimeMillis()+".jpg";
    File file = new File(App.fileNameWithPath);
    Uri output = Uri.fromFile(file);
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, output);
    boolean flag = BaseUtil.hasImageCaptureBug();
    System.out.println(flag);
    //intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(fileNameWithPath)));
    //BaseUtil.saveImagePath(App.fileNameWithPath, this);
    startActivityForResult(intent, REQUEST_TAKE_PHOTO);
}
它像这样: 我想要的是 1. A开始B(堆栈:A,B) 2. B启动相机活动并等待结果(堆栈:A,B,相机) 3.保存图片,返回B活动(堆栈:A,B) 但在第 3 步,它不是返回到 B,而是返回到 A。 好像B已经被系统完成了,为什么?

【问题讨论】:

    标签: android camera galaxy


    【解决方案1】:

    http://developer.android.com/reference/android/app/Activity.html 原因是因为 Android 中的内存管理。据我所知,您的手机有大约 100mb 的可用操作内存,如果您的活动不在前台,它可能会被破坏。所以这就是为什么你应该实现你的活动的一些方法来启动它是 onPause、onDestroy 和 on Resume 方法。只需将所有信息保存在 Bundle 中并启动 Activity。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多