2014-03-29 42 views
3

我正在跟蹤瀏覽器鏈接。所以,我正在使用我在ContentObserver中註冊的ContentObserver在單個ContentObserver中註冊多個內容URI

所以我必須在這裏註冊多個URI在一個單一的ContentObserver

在單個ContentObserver中註冊多個URI是個好主意嗎?或者任何事情都會出錯如果我這樣做?

BlockURL.java

public class BlockURLObserver extends ContentObserver { 
    private Context context; 
    public BlockURLObserver(Context con) { 
     super(null); 
     context = con; 
     context.getContentResolver().registerContentObserver(Uri.parse("content://com.android.chrome.browser/bookmarks"), true, this); 
     context.getContentResolver().registerContentObserver(Browser.BOOKMARKS_URI, true, this); 
    } 
    ... 
} 

回答

1

我認爲,更好地創造內容單一觀察者聽多URI。而不是創造多個觀察員..

在這裏給通常的解釋。

可以在單個Contentobserver中註冊多個URI。 同時,使用URI可以區分onChange()中的代碼。

@Override 
    public void onChange(boolean selfChange, Uri uri) { 
     super.onChange(selfChange); 
    } 

this onChange(boolean selfChange,Uri uri)從API 16開始執行。以便您可以在單個內容觀察器中註冊多個URI。

@Override 
    public void onChange(boolean selfChange, Uri uri) { 
     super.onChange(selfChange); 
     if(uri.toString.equalsgetUrifor((BOOKMARKS_URI))) { 
      //do your stuff 
     } 
     if(uri.toString.equals(getUrifor(SOMETHING_ELSE))) { 
      //... 
     } 
    }