簡體   English   中英

有什么辦法知道誰在調用同步適配器?

[英]Is there any way to know who is calling the sync adapter?

我的項目中有Content provider和同步適配器。 在我的項目中,我首先要從服務器獲取數據,然后將其存儲在數據庫sqlite中。

現在我要解決我的問題。 實際上,我想根據在sqlite中修改的數據來更改服務器數據。

例如:如果我刪除數據庫中的數據,我也想刪除服務器數據庫中的數據。 為此,我的同步適配器應知道執行了哪些操作(例如刪除或插入)。

另一種方法是在調用同步適配器時將我的整個本地sqlite數據庫與服務器中的數據進行比較。

我不想要那種方法。 有什么方法可以知道誰在調用同步適配器,或者從同步適配器在內容提供程序中執行了什么操作?

術語“誰正在調用同步適配器”似乎沒有什么價值,只要它不會給您有用的信息即可。 取而代之的是,您很可能希望在有人要求同步時(通過requestSync() )傳遞一些參數。

ContentResolver.requestSync(Account, String, Bundle)接受一個額外的Bundle ,它將傳遞給您的SyncAdapteronPerformSync()



    // a code that initiates sync 
    ContentResolver.requestSync(ACCOUNT, AUTHORITY, someBundle);

    ...

    // your implmementation of SyncAdapter
    @Override
    public void onPerformSync(
            Account account,
            Bundle extras, // acquire information from this bundle
            String authority,
            ContentProviderClient provider,
            SyncResult syncResult) {
           /*
            * Put the data transfer code here.
            */
            ...
    } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM