第二次调用startActivityForResults时应用程序停止响应

时间:2016-06-17 11:45:12

标签: android

先生,我正在制作一个聊天应用程序,我想要选择一个图像并将其上传到数据库。为此我使用了意图和 startActivityForResults 打开一个图库,然后选择所需的图像,最后处理onActivityResults.this中的数据第一次运行良好但当我执行相同的操作第二次应用程序停止响应时。这是我的代码

imageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent();
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_PICK);
            startActivityForResult(intent,1);
        }
    });

并处理相同活动中的代码:

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    try {
        Toast.makeText(this, "hello", Toast.LENGTH_LONG)
                .show();
        // When an Image is picked
        if (requestCode == 1 && resultCode == RESULT_OK&& data!=null) {
            // Get the Image from data
            Uri selectedImageURI = data.getData();

         UploadTask uploadTask = storageRef.child("images/" + "IMG" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())).putFile(selectedImageURI);


            uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                    double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
                    Toast.makeText(Chat.this, ""+progress, Toast.LENGTH_LONG)
                            .show();
                }
            }).addOnPausedListener(new OnPausedListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onPaused(UploadTask.TaskSnapshot taskSnapshot) {
                    System.out.println("Upload is paused");
                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception exception) {
                    // Handle unsuccessful uploads
                    Toast.makeText(Chat.this, "You haven't failure Image",
                            Toast.LENGTH_LONG).show();
                }
            }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    // Handle successful uploads on complete
                    Uri downloadUrl = taskSnapshot.getMetadata().getDownloadUrl();
                    Toast.makeText(Chat.this, "success", Toast.LENGTH_LONG).show();
                }
            });

        } else {
            Toast.makeText(this, "You haven't picked Image",
                    Toast.LENGTH_LONG).show();
        }
    } catch (Exception e) {
        Toast.makeText(this, "Something went wrong", Toast.LENGTH_LONG)
                .show();
    }

}

没有 logcat错误因为应用程序没有崩溃。只是停止响应,对话框询问等待或停止。请帮助!!!

0 个答案:

没有答案