ContentProvider和資料庫的區別
大家好,今天我們來講解ContentProvider和資料庫的區別是他們之間的聯絡.
四大元件之一
1.ContentProvider是如何實現資料共享的?
1.在Android中,為了把自己程式的資料(一般是資料庫)提供給其他應用程式,就通過ContentProvider提供的方法.
2.內容提供者可認為是程式間共享資料的介面,新建一個類繼承ContentProvider.
3.按要求重寫insert,delete,update,query方法(用於資料庫的操作).
4.要記得進行清單檔案註冊:
註冊要加上作者標記authorities(自定義的):
<provider
android:authorities="this.bank.authority"
android:name=".MyContentProvider"/>
1
2
3
5.其他程式通過內容解析者ContentResoler的物件進行增刪改查
2.為什麼要使用ContentProvider?它和sql在實現上有什麼區別?
1.ContentProvider 遮蔽了資料儲存的細節,內部實現透明化,使用者只需關心uri即可(是否匹配)
2.ContentProvider能實現不同app的資料共享,sql 只能是自己程式才能訪問
3.Contentprovider還能增刪本地的檔案,xml等資訊
3.說說ContentProvider,ContentResolver,ContentObserver之間的關係?
ContentProvider:內容提供者,定義增刪改查(方法)和資料庫關聯;
ContentResolver:內容解析者,一個app裡邊用於獲取另一個app的資料(進行增刪查改的具體資料操作)
ContentObserver:內容觀察者,另外的一個app(可以是不同於上述兩個app)可以監聽資料改變的訊息
1.getContentResolver.notifyChange(uri):在內容提供者裡面的各個方法新增,這樣就能發出訊息
2.getContentResolver.registerContentOberver():進行監聽註冊,一個想觀察內容變化的app,在觀察者建立時就註冊