2014-01-15 58 views
3

我注意到我的设备非常奇怪的行为。Samsung Galaxy Tab 2 10.1在照相机意图拍摄照片后杀死处理

我创建行动MediaStore.ACTION_IMAGE_CAPTURE

一个新的intent然后我开始为结果的activty。但目前我从相机拍摄照片,我的应用程序从DDMS视角的流程中消失。然后在几秒钟内它再次运行。

有趣的是 - onActivityResult被正确调用并接收图像。但是我有一些在他们的领域中包含一些价值的单身人士。过程重新启动后,这些单例将被重新初始化并丢失所有值。

其他设备没有问题 - 无论是平板电脑还是手机。

这是一个已知的错误吗?何以防止Galaxy Tab 2 10.1上的进程重启?

在此先感谢!

更新:下面是我的代码启动相机意图

private void startCameraIntent() { 
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()); 
    String imageFileName = JPEG_FILE_PREFIX + timeStamp + "_"; 
    File albumFile; 
    if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){ 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO){ 
      albumFile = new File (Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), FOLDER_NAME); 
     } else { 
      albumFile = new File(Environment.getExternalStorageDirectory()+CAMERA_DIR+FOLDER_NAME); 
     } 
     if (albumFile != null){ 
      if (!albumFile.mkdirs()){ 
       if (!albumFile.exists()){ 
        showToast(getApplicationContext().getString(R.string.sFailedToCreateDirectory)); 
        return; 
       } 
      } 
     } 
     File imageFile = null; 
     try { 
      imageFile = File.createTempFile(imageFileName, JPEG_FILE_SUFFIX, albumFile); 
      mCurrentPhotoPath = imageFile.getAbsolutePath(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imageFile)); 
     fileUri = Uri.parse(mCurrentPhotoPath); 

     startActivityForResult(cameraIntent, ACTION_CAPTURE_IMAGE); 
    } else { 
     showToast(getApplicationContext().getString(R.string.sSDNotReady)); 
    } 
} 
+1

向我们显示您的代码。 –

+0

您是否在“设置”应用程序的开发人员选项中启用了“不要保留活动”? – fifarunnerr

+2

可能相机应用程序需要大量内存,系统正在查杀其他应用程序。 – marcinj

回答

1

它是一个已知的bug?

这不是一个错误。如果你的应用程序不在前台,它的进程可以随时终止。

Ho防止Galaxy Tab 2 10.1上的进程重新启动?

你不行。当它不在前台时,你的过程可以随时消失。因此,例如,如果用户按下HOME,并且以后Android终止您的进程,并且之后用户尝试通过最近的任务列表返回到您的应用程序,您将看到相同的行为。你的应用需要能够处理这个。

欢迎您直接尝试使用Camera,而不是开始第三方活动,因为这样可以让您的应用程序保持在前台。不过,这比你所做的更复杂。

相关问题