1
我創建了具有多個圖像添加對話框的片段。每個圖像可以通過相機或畫廊添加。在這兩種情況下,我只能添加一個圖像 - 解散圖庫/相機視圖應用程序後停止響應。 這就是我創造的攝像頭和畫廊挑選意圖:Android應用程序在次要操作後沒有響應ACTION_PICKT意圖
//permissions request in other methods
private void pickImage() {
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, SELECT_GALLERY);
}
private void openCamera() {
if (PermissionsHelper.checkStoragePermissions(ReportFragment.this)) {
Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri fileUri = getOutputMediaFileUri();
fileFromCamera = fileUri.getPath();
takePicture.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
startActivityForResult(takePicture, SELECT_PHOTO);
} else {
PermissionsHelper.requestStoragePermissions(this, CAMERA_STORAGE_PERMISSION_REQUEST);
}
}
下面是結果如何被處理:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != Activity.RESULT_OK) {
return;
}
if (requestCode == SELECT_GALLERY) {
Uri selectedImageAddress = data.getData();
addPathsIfUnique(getRealPathFromURI(selectedImageAddress));
}
if (requestCode == SELECT_PHOTO) {
if (PermissionsHelper.checkStoragePermissions(this)) {
if(fileFromCamera != null) {
addPathsIfUnique(fileFromCamera);
}
} else {
PermissionsHelper.requestStoragePermissions(this, CAMERA_STORAGE_PERMISSION_REQUEST);
}
}
}
private void addPathsIfUnique(String path) {
if(path == null)
return;
for(String currentPath : photoPaths) {
if(currentPath.equals(path)) {
return;
}
}
photoPaths.add(path);
shopChanged(point);
}
在shopChanged功能我重新創建ListView的細胞。我也試圖完全刪除ListView,將其替換爲片段中的單個按鈕,但結果相同:在第二次打開畫廊或相機關閉後,應用程序不再響應。即使OnResume斷點沒有被觸發。但第一次開幕後,所有作品都很好。 這種行爲的原因是什麼?
你的'onRequestPermissionsResult'看起來像什麼?我猜你在某處有一個無限循環。 – chessdork
看起來像這樣:http://pastebin.com/eY9QjBM5但是,在授予所有權限後,錯誤仍然存在。現在我評論了這種方法,並且應用程序即使在第一個庫開放之後也不負責任:)現在我必須創建新的空項目並逐步複製現有代碼以找到原因 – wingear
如果是,請解決此問題給我解決方案I我也面臨這個問題 –