1

感謝您的時間。我正在做一個應用程序,我從那裏啓動畫廊和活動A選擇一個圖像,並回到同一活動A.從Gallery中選擇一張照片後,我的Android應用即將關閉。 (有帖子上的bug的視頻)

我這樣做沒有問題從一個單一的活動(它被定義爲啓動器清單),但是當我從清單上定義的Activity的整個項目作爲默認項目執行時,它無法正常工作。

我用開畫廊和選擇照片的意圖:

public void openGallery(int req_code){ 

    Intent intent = new Intent(); 
    intent.setType("image/*"); 
    intent.setAction(Intent.ACTION_GET_CONTENT); 
    startActivityForResult(Intent.createChooser(intent,"Select file to upload "), req_code); 
} 

從哪裏獲得的數據(當我從孔項目執行這是永遠不會被調用)的onActivityResult:

public void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (resultCode == RESULT_OK) { 
     Uri selectedImageUri = data.getData(); 
     if (requestCode == SELECT_FILE1) 
     { 
      selectedPath1 = getPath(selectedImageUri); 
      System.out.println("selectedPath1 : " + selectedPath1); 
     } 
     if (requestCode == SELECT_FILE2) 
     { 
      selectedPath2 = getPath(selectedImageUri); 
      System.out.println("selectedPath2 : " + selectedPath2); 
     } 
     tv.setText("Selected File paths : " + selectedPath1 + "," + selectedPath2); 
    } 
} 

這是logcat的轉儲:

01-05 15:18:14.569: I/ActivityManager(59): Starting activity: Intent { act=android.intent.action.UPLOADIMAGEDEMO cmp=com.example/.UploadImageDemo } 
01-05 15:18:15.779: D/dalvikvm(2496): GC_EXTERNAL_ALLOC freed 2697 objects/189152 bytes in 92ms 
01-05 15:18:16.599: I/ActivityManager(59): Displayed activity com.example/.UploadImageDemo: 1953 ms (total 1953 ms) 
01-05 15:18:21.899: D/dalvikvm(279): GC_EXPLICIT freed 871 objects/134112 bytes in 217ms 
01-05 15:18:26.620: I/ActivityManager(59): Starting activity: Intent { act=android.intent.action.CHOOSER cmp=android/com.android.internal.app.ChooserActivity (has extras) } 
01-05 15:18:28.250: I/ActivityManager(59): Starting activity: Intent { act=android.intent.action.GET_CONTENT typ=image/* flg=0x3000000 cmp=com.android.gallery/com.android.camera.ImageGallery } 
01-05 15:18:28.670: D/dalvikvm(279): GC_EXTERNAL_ALLOC freed 388 objects/53352 bytes in 60ms 
01-05 15:18:28.850: D/dalvikvm(279): GC_EXTERNAL_ALLOC freed 326 objects/90664 bytes in 53ms 
01-05 15:18:29.200: I/ActivityManager(59): Displayed activity com.android.gallery/com.android.camera.ImageGallery: 873 ms (total 2345 ms) 
01-05 15:18:29.420: D/dalvikvm(279): GC_EXTERNAL_ALLOC freed 725 objects/106960 bytes in 140ms 
01-05 15:18:30.430: W/InputManagerService(59): Starting input on non-focused client   [email protected] (uid=10002 pid=279) 
01-05 15:18:32.010: D/dalvikvm(112): GC_FOR_MALLOC freed 9994 objects/476368 bytes in 149ms 

要完成,我錄仿真器的行爲第一個來自整個項目(退出應用程序),第二個來自分離的項目,工作正常。

http://www.youtube.com/watch?v=SntnyKiJQ1Q&feature=youtu.be

非常感謝!

+1

請共享logcat轉儲。 –

+0

嘿hrehman!我在那裏更新了這篇文章。讓我知道如果你有任何想法.. – eyyo

+0

我相信你的getPath(selectedImageUri)函數可能有問題。嘗試使用Uri類的函數selectedImageUri.getPath()。如果Uri無效,它將返回null。 –

回答

0

我有啓動畫廊與下面的代碼選擇圖像的工作代碼:

static final int GALLERY_RESULT = 1; 

Intent j = new Intent(Intent.ACTION_PICK, Images.Media.EXTERNAL_CONTENT_URI); 
j.setType("image/*"); 
startActivityForResult(j, GALLERY_RESULT); 

和我處理結果如下:

protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    super.onActivityResult(requestCode, resultCode, intent); 
    if (resultCode == RESULT_OK) { 
     switch (requestCode) { 
      case GALLERY_RESULT: 
       Uri imgUri = intent.getData(); 
       imgView.setImageURI(imgUri); 
      break; 
     } 
    } 
} 
+0

我改變了你的代碼的意圖結構,它仍然不能在項目上工作。它打開畫廊,我選擇照片,當它應該回到活動它退出應用程序.. – eyyo

+0

在您的LogCat中,將有大約5到10條紅色線,請在這裏粘貼。他們告訴你什麼導致了錯誤。你之前粘貼的logcat沒有多大幫助。 –

+0

我認爲它不會顯示錯誤,因爲它從不在應用程序中的庫中退出。 – eyyo

0

嘗試在活動明顯改變:

android:noHistory="false"

相關問題