我對android編程頗爲陌生,現在我正在爲媒體商店玩個人測試項目。我碰到一對夫婦雙邊緣問題..操作媒體庫所需的建議
我需要查詢mediastore所有的音樂文件的列表,夠簡單 - 但我需要限制的結果,只有特定的文件夾。我使用SQL- * LIKE- where子句完成了這個任務(相當容易),並在這方面做得很好。
我現在需要一個唯一的(如果這是實際使用SQL,我可以簡單地使用DISTINCT改性劑和與此完成)所有藝術家的列表。現在這是基於給定路徑中的歌曲。因此,我無法過濾查詢URI所返回的列表:MediaStore.Audio.Artists.EXTERNAL_CONTENT_URI,並像第一步中那樣添加基於文件路徑的子句。
那麼,這是什麼留給我用我的初始查詢和獲取光標當時從光標剝離受騙者(這是我現在 - 太慢,尤其是1000首+歌曲) - 基於很明顯,在藝術家而不是歌曲的問題上。
是否可以重寫實際查詢來填充遊標,也許?如:重寫查詢並篩選數據最初放入遊標的方式(刪除遞歸條目)並立即返回適當的遊標?內容提供者以及他們從來沒有建立過獨特的功能,這些都超出了我,但是無論如何。來自URI查詢命令的返回的遊標是否可以被覆蓋或不被覆蓋?這就是目前我不清楚這一點。我希望能夠直接包裝getContentResolver()。query(xxx ..))命令以刪除光標填充上的條目 - 如果可能的話 - 我做異步查詢並使用單個查詢語句(好吧,一個用於藝術家查詢)會很好。
我的另一個想法是預加載數據並通過基於預加載的數據集(遊標)創建一個新的遊標來操作我的視圖的數據 - 這可能是要走的路,如果是的話 - 遊標是最好的方式來存儲這些數據?還擔心更大的圖書館的公羊。
也許有一個簡單的方法來做到對URI一個DISTINCT查詢 - 我只是不知道。
我已經看到了這個問題(或之流有-的)問了很多次,都意味着一個URI,而不是一個SQL後端沒有很好的答案。
謝謝大家,感謝幫助。