2012-09-19 69 views
0

我的應用程序將圖像存儲在SD卡上。當SD卡被移除時,我的應用程序將被迫關閉。我想改變這一點,而不是強迫關閉,我想在SD卡被移除時將這些圖像放在內部存儲器上。有什麼建議麼?編號1: 日誌中沒有例外。我可以看到我的應用程序在卸載媒體時被殺害,但我不知道爲什麼。當SD卡被移除時強行關閉

09-19 12:14:33.128: W/ActivityManager(27117): Killing processes unmount media at adjustment 7 
09-19 12:14:33.128: W/ActivityManager(27117): Killing ProcessRecord{408f6700 17535:com.google.android.apps.maps/10074} (adj 11): unmount media 
09-19 12:14:33.128: W/ActivityManager(27117): Killing ProcessRecord{40a99fd8 28691:cn.wps.livespace/10049} (adj 9): unmount media 
+0

安裝在SD卡上您的應用程序,也可以SD卡上安裝讀取和寫入數據時,每次都...?你有沒有檢查過AndroidManifest.xml中的 k3b

+0

@ k3b我仔細檢查了AndroidManifest.xml,但沒有找到該屬性。 –

回答

0

您可以檢查您的應用程序啓動時sd卡是否已經被卸載。請使用此處的代碼片段並閱讀android開發人員網站上的更多信息。 Using the External Storage

如果要顯示來自內部存儲器的圖像,應將這些圖像打包到.apk文件中。只需將它們放入/ asset文件夾,然後使用AssetManager即可讀取它們,甚至可以將它們複製到內部存儲器以備將來使用。

+0

我在應用程序啓動時檢查了外部存儲狀態。我的應用程序沒有讀取或寫入SD卡,但當我取出SD卡時它會立即強制關閉。我的圖像都來自互聯網,我只是使用SD卡作爲緩存的地方。看到我的編輯在問題中,也許幫助。 –

+0

還沒有使用它,但有一個廣播android.intent.action.MEDIA_REMOVED,可能會有所幫助。 –

+0

@Howard當我取出SD卡時,我的應用程序將立即強制關閉,所以我沒有機會接收廣播並進行正確的操作。 –

0
File temp; 
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) 
temp =new File(android.os.Environment.getExternalStorageDirectory(),"ImageFile"); 
else 
temp=ctx.getCacheDir(); 

呼叫

+0

當我的應用程序關閉時,我沒有讀取或寫入數據。我長時間打開應用程序,因此閱讀或寫作必須完成,但是當我取出SD卡時,我的應用程序將立即強制關閉。 –