簡體   English   中英

android contentProvider notifyChange

[英]android contentProvider notifyChange

我對contentProvide中使用的notifyChange機制感到困惑:

// Tell the cursor what uri to watch, so it knows when its source data changes
        c.setNotificationUri(getContext().getContentResolver(), uri);

getContext().getContentResolver().notifyChange(noteUri, null);

以下是問題(假設提供者和客戶端位於不同的程序包中):

  1. Provider返回的contentResolver是否與客戶端返回的Resolver相同?
  2. 游標與提供者和客戶端返回的光標相同嗎?
  3. 要通知更改的Uri決議是什么? 整個表uri還是一行?

請澄清

我知道這是一個老問題。 我在回答這個問題,對遇到這個問題的人有幫助。

  1. Provider返回的contentResolver是否與客戶端返回的Resolver相同?

是的,是一樣的。

  1. 游標與提供者和客戶端返回的光標相同嗎?

我想,您是在第一個代碼段(在query()方法中看到)的上下文中提出這個問題的。 在這里,您將在要返回給客戶端的光標上設置通知uri。 因此,很明顯,客戶端和提供者正在使用相同的游標。

  1. 要通知更改的Uri決議是什么? 整個表uri還是一行?

通知的Uri取決於操作:

  1. insert()-通知Uri是表Uri,后面附加新插入的行的ID。

  2. delete()和update()-在這里,Uri是表Uri,后面附加了已刪除或已更新行的ID。

暫無
暫無

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

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