ContentProvider和數據庫的區別

你們好,今天咱們來說解ContentProvider和數據庫的區別是他們之間的聯繫.android

四大組件之一sql

1.ContentProvider是如何實現數據共享的?數據庫

    1.在Android中,爲了把本身程序的數據(通常是數據庫)提供給其餘應用程序,就經過ContentProvider提供的方法.
    2.內容提供者可認爲是程序間共享數據的接口,新建一個類繼承ContentProvider.
    3.按要求重寫insert,delete,update,query方法(用於數據庫的操做).app

    4.要記得進行清單文件註冊:ide

        註冊要加上做者標記authorities(自定義的):this

        <provider
            android:authorities="this.bank.authority"
            android:name=".MyContentProvider"/>
            1
            2
            3server

    5.其餘程序經過內容解析者ContentResoler的對象進行增刪改查xml

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,在觀察者建立時就註冊

  -

相關文章
相關標籤/搜索