2
爲什麼Android可能會在卸載/掛載SD卡操作後刪除保存在Media.EXTERNAL_CONTENT_URI下的數據?如何避免這種情況?爲什麼Android可能會刪除保存在Media.EXTERNAL_CONTENT_URI下的數據?
我使用此URI和來自上下文的默認內容解析器保存鈴聲。
的代碼是類似的:
ContentValues values = new ContentValues();
values.put(Media.DATA, AudikoFileStorageAccessor.getInstance().getAbsolutePathForRingtone(ringtone.getId()));
values.put(Media.TITLE, ringtone.mSong);
values.put(Media.DISPLAY_NAME, ringtone.mSong);
values.put(Media.ARTIST, ringtone.mArtist);
values.put(Media.MIME_TYPE, "audio/mpeg");
values.put(Media.SIZE, ringtone.mSize * 1024);
values.put(Media.IS_RINGTONE, (RingtoneManager.TYPE_RINGTONE == type || type == 0));
values.put(Media.IS_NOTIFICATION, (RingtoneManager.TYPE_NOTIFICATION == type));
values.put(Media.IS_ALARM, (RingtoneManager.TYPE_ALARM == type));
values.put(Media.IS_MUSIC, false);
Uri newUri = mContext.getContentResolver().insert(
Media.getContentUriForPath(AudikoFileStorageAccessor.getInstance().getAbsolutePathForRingtone(
ringtone.getId())), values);
RingtoneManager.setActualDefaultRingtoneUri(mContext, type, newUri);
一切正常,但在我卸載SD卡,然後重新安裝它這個鈴聲不存在了,無法在此表中找到。
我應該如何處理UNMOUNT事件並以某種方式備份我保存的數據,並在SD卡再次可用時立即恢復它?