我有一個活動,啓動電子郵件意圖,傳遞Uri對象的數組列表,指向本地文件。這在少量文件例如3或10.但是,當我有1000多個文件(總計大小爲14 MB)時,活動會掛起(這是預期的很多I/O),但它有時會無限期地掛起或者當它返回意圖時, t發射。使用電子郵件意圖發送大量附件的電子郵件掛起/不啓動意圖
下面的代碼(用的AsyncTask調用)創建的URI的數組列表,並啓動電子郵件的意圖:
private Intent createEmailAndSend(List<FilePath> paths) {
Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
emailIntent.setType("message/rfc822");
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Email subject");
ArrayList<Uri> fileUriList = new ArrayList<>();
for (FilePath filePath : paths) {
File file = new File(filePath.getPath());
fileUriList.add(Uri.fromFile(file));
}
emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, fileUriList);
startActivity(intent);
}
測試上:
- Genymotion,過Android Studio 2 Beta版仿真器的Nexus 7和的Nexus 6P
- 的Android:最小19(奇巧)和目標是奇巧
有誰知道我做錯了什麼?
謝謝,如上所述,我已經使用一個AsyncTask,執行主線程的代碼。在電子郵件意向調用startActivity時出現問題。 – WolfBane
然後我認爲你應該嘗試看壓縮到一個zip文件,並使其成爲一個單一的附件。 – AndroidMechanic
這不像掛斷了應用程序,正如你所提到的那樣可以理解。這是圍繞應用程序崩潰開始意圖(郵件客戶端),這是好奇。我沒有收到任何例外或錯誤,應用程序崩潰並重新啓動,沒有提示出了什麼問題。 – WolfBane