我正在經歷一些設計困境,我一直在瞄準Android 2.3.3並擁有一個ContentProvider的自定義實現。然後我有一類靜態方法來抽象內容提供者 - 根據我的查詢爲我提供表示每個實體(行)的對象。有一段時間,我對這樣的工作感到非常舒服,直到我開始想在一些地方使用整個系列,進行「打擊測試」並繪製到屏幕上。然後,我對讓對象表示保持最新狀態感到頭痛,並且此時已決定我需要退後一步並重新考慮在何處採取此操作。內容提供者:用靜態外觀包裝?
正如我所說,我目前使用2.3.3,並認識到在3.0 CursorLoader克服了我遇到的很多問題。儘管如此,我仍然需要支持智能手機,所以除非有回報,否則我不能這樣做。
作爲一個臨時解決方案,我開始註冊notifyChange偵聽器,以便可以用我的原始查詢重建集合,但這會讓我感覺CPU非常密集並且速度可能很慢。我還沒有決定是否應該使用我的靜態外觀進行回滾,而是使用Activity中過時的managedQuery調用。
因此,我有兩個問題:
1)是否有preferrable的方式,以避免對基於一個ContentProvider的收集工作的問題是什麼?
2)您有任何關於在活動中使用原始遊標的建議嗎?我應該讓它們脫離它們還是使用光標原樣工作?我當然覺得在執行查詢時他們應該在AsynTask中,但在那之後我可以在任何地方使用它們?
我曾經想過的一個問題是靜態的,這種方法使得代碼的依賴性是隱含的。應該使用對象實例。這不會影響它在創建方法中使用的活動(不會使用params),但會影響異步任務和其他組件 – Uniqe 2011-05-26 11:03:58