我注意到我的设备有很奇怪的行为。
我用行动创造了一个新的意图MediaStore.ACTION_IMAGE_CAPTURE
然后我开始了一个结果的活动。但在我从相机拍照的那一刻,我的应用程序从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));
    }
}

最佳答案

它是已知的虫子吗?
这不是虫子。如果您的应用程序不在前台,则可以随时终止其进程。
如何防止Galaxy Tab 2 10.1上的进程重新启动?
你不能。当你的进程不在前台时,它可以随时消失。因此,例如,如果用户按Home键,稍后Android终止您的进程,然后用户尝试通过“最近的任务”列表返回您的应用程序,您将看到相同的行为。你的应用程序需要能够处理这个问题。
欢迎您尝试直接使用Camera,而不是启动第三方活动,因为这将使您的应用程序保持在前台。不过,这比你现在所做的要复杂得多。

08-25 23:14