【问题标题】:Camera and gallery crashes when hard key return/back button is pressed按下硬键返回/返回按钮时相机和图库崩溃
【发布时间】:2013-11-22 13:35:14
【问题描述】:

按下硬键返回按钮时相机崩溃。 这会影响应用程序中的图库和相机拍照。我尝试通过检查意图action() 是否不为空来处理此问题。但它仍然崩溃。非常感谢任何建议。

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode==0){
        if(data.getAction() != null){
        Bitmap theImage = (Bitmap)data.getExtras().get("data");
        if(theImage !=null){
            iv.setImageBitmap(theImage);
            }
        }

    }
    else if (requestCode == 1) {

        if(data.getAction() != null){
        Uri selectedImage = data.getData();
        String[] filePathColumn = { MediaStore.Images.Media.DATA };

        Cursor cursor =getContentResolver().query(selectedImage,
                filePathColumn, null, null, null);
        cursor.moveToFirst();

        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        String picturePath = cursor.getString(columnIndex);
        cursor.close();

       if(picturePath !=null){
        iv.setImageBitmap(BitmapFactory.decodeFile(picturePath));
       }
     }
    }
}

***更新****

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
            //getInfo is the Bundle
    if(data !=null || getInfo !=null){
        if(requestCode==0){
            if(data.getAction() != null){
            Bitmap theImage = (Bitmap)data.getExtras().get("data");
            if(theImage !=null || getInfo !=null || data!=null){
                iv.setImageBitmap(theImage);
                }
            }

        }

【问题讨论】:

    标签: android android-intent android-camera android-keypad


    【解决方案1】:

    在onActivityResult() 中包含null 值检查。

    使用前检查Intent data是否为null,是否hasExtra()。

    即,

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
      if(data!=null){
        // Your code
      }
    }
    

    【讨论】:

    • 你能分享一个例子吗?
    • 它仍然崩溃,请根据您的建议检查上面的更新代码
    • 在 if 条件下将逻辑 OR 更改为逻辑 AND。现在?另外,getInfo 有什么需要?你不能避免吗?
    猜你喜欢
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多