2014-01-11 66 views
2

我有與SQLite數據庫的Android應用程序,我想知道如何創建和註冊一個ContentObserver將被通知更改數據庫。我知道我可以使用ContentProvider來做到這一點,但我只是將數據庫用於我的應用程序,所以不需要將它製作爲ContentProvider,我想知道是否有辦法避免這種情況。ContentObserver的SQLite數據庫Android的

謝謝!

+0

沒有什麼用Java(1.7之前),如用於觀看目錄的WatchService? –

+0

只需創建一個內容提供者,它非常簡單 – Thomas

回答

6

ContentObserver只能用ContentProvider

這聽起來你想要的是一個事件總線,因此該改變數據庫可以發佈一個事件你的代碼,而你的代碼,感興趣的這種變化可以監聽的事件。基本上,您使用事件總線作爲觀察者模式的通信層。 「三巨頭」 選擇這裏是:

+0

afaik ContentObserver是通用目的野獸 – pskink

+0

@pskink:並非如此。你可以將ContentObserver變成角色,而不是處理ContentProvider,而忽略Uri等,但是除了使用ContentObserver之外,它並沒有給你帶來什麼好處。 * Android *使用'ContentObserver'唯一的地方是使用'ContentProvider'。 – CommonsWare

+0

我想說ContentResolver是Android使用ContentObservers的主要地方,所以使用CR API OP可以實現他們想要的效果 – pskink