我工作圍繞與Android db和滿足工作的2種方法:的Android SQLite的用的ContentProvider或SQLiteOpenHelper
1)只使用SqliteOpenHelper
2)使用ContentProvider
和SqliteOpenHelper
它有什麼優勢使用一個還是其他?
我工作圍繞與Android db和滿足工作的2種方法:的Android SQLite的用的ContentProvider或SQLiteOpenHelper
1)只使用SqliteOpenHelper
2)使用ContentProvider
和SqliteOpenHelper
它有什麼優勢使用一個還是其他?
這個問題主要是根據意見,但概括起來:
1)只使用SqliteOpenHelper
你必須自己管理數據庫訪問。提供CRUD訪問方法並擁有完全控制權。更新可以並且仍然應該使用SqliteOpenHelper
來處理。
2)使用的ContentProvider和SqliteOpenHelper
這會給你通過框架方法訪問你的數據庫。它將使您能夠使用CursorLoader
(更改時自動刷新),SyncAdapter
(同步更改爲服務器)以及一些其他功能。由於您沒有直接訪問數據庫,您將不得不使用URI
路徑來識別您的元素和發佈查詢。
這個選項有更好的文檔記錄,因爲它是官方的android api,儘管在你最好地使用它之前你必須做一些閱讀。
另外值得一提的,如果一些其他開發人員看你的代碼,他們可能會知道如何使用您的ContentProvider
(如果你保持一致),但他們將不得不讀入你的源代碼(或文檔)瞭解如何使用您的自定義實現。
要確定,你是否說只用SqliteOpenHelper不可能/很難使用SyncAdapter? – Nazerke
@Nazerke SyncAdapter作爲框架的一部分,旨在與內容提供商一起使用,我相信大多數教程也會使用它們。顯然你不必使用ContentProvider,但我自己討厭與框架對抗。 –