- Android4.4以后不允許非系統(tǒng)應(yīng)用發(fā)送系統(tǒng)廣播,所以更新媒體庫的廣播Intent.ACTION_MEDIA_MOUNTED 在4.4之后無效
- Android多媒體數(shù)據(jù)不是從文件系統(tǒng)中惹胀帧?是從多媒體數(shù)據(jù)庫中壤缰印扯饶? 這二者有什么區(qū)別?
Android系統(tǒng)在啟動的時候會啟動MediaScannerService掃描系統(tǒng)上的多媒體文件捧请,然后將這些多媒體文件的信息加入到多媒體數(shù)據(jù)庫中锋喜,應(yīng)用程序要取得這些多媒體信息就是從這個多媒體數(shù)據(jù)庫里面去取的些己,并不是從SD卡中取。也就是說嘿般,如果開機(jī)后增加或刪除了一些多媒體段标,這個多媒體數(shù)據(jù)庫是不會自動刷新的。
- 更新媒體數(shù)據(jù)庫時炉奴,使用
MediaScannerConnection.scanFile(this, new String[] {"文件全路徑"}, null,null);
和
intent.setData(Uri.fromFile(new File(“文件路徑逼庞,包括文件名”)));
context.sendBroadcast(intent);```都只更新所在數(shù)據(jù)庫中文件信息的列,與之相關(guān)的相冊信息不會更新
4. 調(diào)用相機(jī)拍攝照片返回照片列表顯示界面時不能更行列表瞻赶,重新選擇相冊才可以更新赛糟。但這兩個都是用同一個顯示邏輯派任,為什么?
拍攝照片返回并讀取璧南,涉及到以下過程 ---調(diào)用相機(jī)吨瞎,設(shè)置存儲路徑,照片文件存儲穆咐,掃描照片,加載到媒體庫字旭。掃描 MediaScannerConnection是異步操作对湃,如果在掃描還沒有完成(也就是照片信息沒有加載到媒體庫中)就讀取顯示照片,當(dāng)然不能找到遗淳。
【經(jīng)驗教訓(xùn)】當(dāng)從網(wǎng)絡(luò)上查找到新的方法解決需求時拍柒,最好看一下這個方法各個參數(shù)的意義,這樣可以根據(jù)實際需求應(yīng)用屈暗,如果有時間看看其他重載方法更好拆讯。
5. fragment的使用
(1)extends Fragment和 extends FragmentActivity有什么區(qū)別
(2)android.app.Fragment,因為我們的程序是面向Android 4.0以上系統(tǒng)的养叛,另一個包下的Fragment主要是用于兼容低版本的Android系統(tǒng)
(3)activity.xml中放置一個FrameLayout种呐,代碼中用fragment進(jìn)行替代
(4)fragment之間中進(jìn)行消息傳遞
(5)activity和fragment傳遞消息
(6)activity調(diào)用fragment的UI
(7)fragment調(diào)用activity的UI
6.接口定義的一般方法:例:A中進(jìn)行接口B定義:
Class A{
void 調(diào)用方法(B b){
this.b=b;
...
***b.接口方法(傳入?yún)?shù));***
}
interface B{
接口方法
}
}