Android 选择图片后活动力被破坏

Android 选择图片后活动力被破坏,android,Android,我有一个简单的选择图像源对话框: public void toggleImagePicker() { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle("Choose Image Source"); builder.setItems(new CharSequence[]{"Gallery", "Camera"}, new DialogInterfac

我有一个简单的
选择图像源
对话框:

public void toggleImagePicker()
{
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setTitle("Choose Image Source");
    builder.setItems(new CharSequence[]{"Gallery", "Camera"}, new DialogInterface.OnClickListener()
    {

        @Override
        public void onClick(DialogInterface dialog, int which)
        {
            InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
            //                inputMethodManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), 0);
            switch (which) {
                case 0:
                    // GET IMAGE FROM THE GALLERY
                    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                    intent.setType("image/*");

                    Intent chooser = Intent.createChooser(intent, "Choose a Picture");
                    if (mBackgroundClicked)
                        startActivityForResult(chooser, REQUEST_GALLERY_IMAGE_FOR_BACKGROUND);
                    else
                        startActivityForResult(chooser, REQUEST_GALLERY_IMAGE);
                    break;

                case 1:
                    Intent getCameraImage = new Intent("android.media.action.IMAGE_CAPTURE");

                    File cameraFolder;

                    if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
                        cameraFolder = new File(android.os.Environment.getExternalStorageDirectory(), ".helper/");
                    else
                        cameraFolder = getActivity().getCacheDir();
                    if (!cameraFolder.exists())
                        cameraFolder.mkdirs();

                    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd'T'HHmmss");
                    String timeStamp = dateFormat.format(new Date());
                    String imageFileName = "picture_" + timeStamp + ".jpg";

                    File photo = new File(Environment.getExternalStorageDirectory(), ".helper/" + imageFileName);
                    if (!mBackgroundClicked)
                        mProfilePhotoPath = new String(photo.getAbsolutePath());
                    else
                        mBackgroundPhotoPath = new String(photo.getAbsolutePath());
                    getCameraImage.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
                    //                                initialURI = Uri.fromFile(photo);
                    if (mBackgroundClicked)
                        startActivityForResult(getCameraImage, REQUEST_IMAGE_CAPTURE_FOR_BACKGROUND);
                    else
                        startActivityForResult(getCameraImage, REQUEST_IMAGE_CAPTURE);

                    break;

                default:
                    break;
            }
        }
    });

    builder.show();
}
我试着选择图像,显示对话框,点击相机或画廊。否则,我的活动将被销毁并重新创建

LogCat中没有例外

我在日志中发现的一件事:

06-11 14:45:57.700      458-549/? W/InputDispatcher﹕ channel '221e47c0 ******.ProfileExpertActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x9

注意:在片段中实现的拾取机制。

如果没有应用程序来处理该操作,则在开始检查之前,将产生
NullPointerException
,以检查是否有任何应用程序来处理该操作

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
// Verify that the intent will resolve to an activity
if (photoPickerIntent.resolveActivity(getPackageManager()) != null) {
    startActivityForResult(photoPickerIntent, GALLERY_PICKER);    
}

拾取活动正常启动。我的活动在拾取图像时重新创建。