2012-01-15 71 views
2

使用BaseColumns或不與ContentProvider有什麼區別?這是一個接口,所以它可能用在其他地方...?我沒有真正明白,我在我的內容提供商中使用簡單的常量來定義我的數據庫中的_idname,它工作得很好。那麼,我錯過了什麼?使用BaseColumns還是不使用ContentProvider?

公共靜態最後的課堂筆記實現BaseColumns {...

感謝

PS:我檢查了這樣的回答:What is the use of BaseColumns in Android,但我真的不能看到這一點與答案posted

回答

3

實現BaseColumns的意義與重用任何代碼的意義相同;你不要來重用代碼,你可以重新實現它,問題是:爲什麼?現在

,在BaseColumns的情況下,這不站出來這麼多,因爲,很明顯,他們提供的一切都是爲了兩列(_ID和_COUNT)恆定的,所以你不救多的時間實現BaseColumns而不是僅僅自己添加這兩個常量。但是,如果可以的話,爲什麼不使用它?

tl; dr:如果您不想使用BaseColumns,只需輸入幾行代碼就可以節省您的時間。另一方面:因爲它​​可以節省你輸入的時間,爲什麼不使用它?

+0

謝謝Seramme,你能告訴我BaseColumns實際上做了什麼嗎?我的意思是,如果您實施它,contentprovider是否會調用BaseColumns? – Paul 2012-01-15 21:18:45

+0

它什麼都不做。它甚至沒有定義任何方法,所以沒有什麼可以調用的。它只是一個容器,用於兩個常量。你可以不在你的ContentProvider中實現它,而是在另一個類中使用ThatOtherClass._ID來引用id列。請參閱:http://developer.android.com/reference/android/provider/BaseColumns.html – Seramme 2012-01-15 21:46:04