2016-06-07 73 views
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斷點沒有被觸發。但第一次開幕後,所有作品都很好。 這種行爲的原因是什麼?

+0

你的'onRequestPermissionsResult'看起來像什麼?我猜你在某處有一個無限循環。 – chessdork

+0

看起來像這樣:http://pastebin.com/eY9QjBM5但是,在授予所有權限後,錯誤仍然存​​在。現在我評論了這種方法,並且應用程序即使在第一個庫開放之後也不負責任:)現在我必須創建新的空項目並逐步複製現有代碼以找到原因 – wingear

+0

如果是,請解決此問題給我解決方案I我也面臨這個問題 –

回答

0

找到了解決方案:這是新的Google Play服務錯誤 - 問題在降級到8.4.0後修復。將搜索他們bugtracker並提交bug,如果它不是已經提交

相關問題