2016-02-28 44 views

回答

1

這個問題主要是根據意見,但概括起來:

1)只使用SqliteOpenHelper

你必須自己管理數據庫訪問。提供CRUD訪問方法並擁有完全控制權。更新可以並且仍然應該使用SqliteOpenHelper來處理。

2)使用的ContentProvider和SqliteOpenHelper

這會給你通過框架方法訪問你的數據庫。它將使您能夠使用CursorLoader(更改時自動刷新),SyncAdapter(同步更改爲服務器)以及一些其他功能。由於您沒有直接訪問數據庫,您將不得不使用URI路徑來識別您的元素和發佈查詢。
這個選項有更好的文檔記錄,因爲它是官方的android api,儘管在你最好地使用它之前你必須做一些閱讀。


另外值得一提的,如果一些其他開發人員看你的代碼,他們可能會知道如何使用您的ContentProvider(如果你保持一致),但他們將不得不讀入你的源代碼(或文檔)瞭解如何使用您的自定義實現。

+0

要確定,你是否說只用SqliteOpenHelper不可能/很難使用SyncAdapter? – Nazerke

+1

@Nazerke SyncAdapter作爲框架的一部分,旨在與內容提供商一起使用,我相信大多數教程也會使用它們。顯然你不必使用ContentProvider,但我自己討厭與框架對抗。 –

相關問題