先生,我正在制作一个聊天应用程序,我想要选择一个图像并将其上传到数据库。为此我使用了意图和 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错误因为应用程序没有崩溃。只是停止响应,对话框询问等待或停止。请帮助!!!