2016-11-01 80 views
1

我的應用程序啓動畫廊選擇一張照片。與此同時,我的應用程序被操作系統殺死,所以當我選擇圖像時,我的應用程序需要重新啓動。Android應用程序在畫廊意圖期間重新啓動

注意:這是一個暫時的問題。它通常工作得很好。

當它失敗時,在日誌中根本沒有,表示出現任何問題。

該畫廊以通常的方式通過Intent.ACTION_GET_CONTENT推出。

爲什麼我的應用程序被終止?我只能假設它是內存問題,只是(由圖庫應用?):

  • 它發生的小圖片,太。

  • 當它成功運行我的應用程序沒有問題處理 圖像。我正在使用android:largeHeap="true"activityManager.getMemoryClass() = 256MB。

  • 當調試器連接時,問題更頻繁發生。

  • 即使是未壓縮的照片也可能不超過30MB。在啓動畫廊時,我的系統有199MB可用。

即使該應用程序重新啓動時,onActivityResult方法仍稱,所以我仍然可以繼續上傳,但它是個非常緩慢的過程,一個可怕的用戶體驗。

(在三星Galaxy S3運行傑利貝恩)

+0

'我的應用程序需要啓動各地again'。什麼是如此awapull在那?你在使用onCreate()的實例狀態參數嗎? – greenapps

+0

每次應用程序啓動時,我的應用程序都需要通過互聯網獲取數據 - 因此,在圖像上傳過程中重新啓動會使所有應用程序的速度比應該慢10秒。在我看來,這是不可接受的用戶體驗。 – IanS

+0

當你旋轉你的設備?你如何處理?你會不會再次下載我想? '你在使用onCreate()的實例狀態參數嗎?'爲什麼你不回答? – greenapps

回答

0

試試這個兄弟, Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT);// startActivityForResult(Intent.createChooser(intent, "Select Picture"),123);

+0

這和我已經有什麼不同?我嘗試過選擇器,但仍然看到同樣的問題。 – IanS

0

試試這個

Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
       intent.setType("image/*"); 
       startActivityForResult(
         Intent.createChooser(intent, "Select File"), 
         SELECT_FILE); 
+0

我試過了ACTION_PICK - 仍然看到同樣的問題。 – IanS

0

這個工作對我來說: -

private static final int GALLERY_INTENT = 2; 

Intent intent = new Intent(Intent.ACTION_PICK); intent.setType("image/*"); startActivityForResult(intent, GALLERY_INTENT);

在ActivityResult

if (requestCode == GALLERY_INTENT && resultCode == RESULT_OK && data != null) { //do something }

並確保你已經在清單文件中添加這些

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

+0

我已經完成了所有這些。我的代碼沒有任何缺失,因爲它通常工作得很好。 – IanS

相關問題