熟悉安卓的人都知道安卓有四大組件,Activity、Service、Broadcast Receiver、Content PRovider,今天要為大家講解的就是我們的Content Provider
Content Provider翻譯過來是內容提供者的意思,用來共享應用程序內的數據,當你需要把你的應用程序的數據共享給其他應用程序的時候,才需要他
例如可以提供手機內的聯系人,短息,音樂,等等一些數據,所以說該組件對外提供了其他應用可以直接訪問的增刪改查方法,且一旦通過ContentProvider暴露了自己的數據,不管應用程序是否啟動,都能訪問到
下面就通過一個簡單的數據存儲demo來了解我們如何自己寫的Content Provider,以及其他程序如何通過我們提供的Content Provider來訪問我們應用程序的數據
首先我們要新建一個項目,先寫一個簡單的連接數據庫的demo,實現數據庫的添加與查詢功能


然后在這個項目里新建一個provide包,再寫一個類MyContentProvider

在MyContentProvider類中,繼承ContentProvider,然后重寫六個方法,然后再去manifest里配置文件
其中authoritites是ContentProvider的身份證,所以為了保證唯一性,使用包名的方式命名,name代表的是內容提供者所在的類的地址,exported代表的是是否開放,就好比你要去圖書館看書,那么必須具備三個條件,這個圖書館必須提供書,知道圖書館叫什么名字也就是地址,而且這個圖書館得開放,這樣一比較,是不是就容易記住一些呢
內容提供者的部分就到這里,然后我們接著來看內容訪問者,也就是ContentResolver,此時再新建一個項目,然后在布局文件中寫一個按鈕,用來查看所有數據

然后去內容提供者的那個項目里的MyContentProvider類里的查詢方法寫查詢所有數據的方法

在內容訪問者的MainActivity里寫如下內容

在寫uri時,需要著重注意,一定要在地址前加上content協議先后運行該兩個項目后,就可以看到如下結果了這樣一個簡單的demo也算弄好了,當然,這個是在控制臺顯示的結果,由于時間關系,我會在下一篇博客上講解如何將數據顯示在listView上,盡請期待,如果本篇博客有什么值得改進的地方,請指出來哦
新聞熱點
疑難解答