我有與SQLite數據庫的Android應用程序,我想知道如何創建和註冊一個ContentObserver
將被通知更改數據庫。我知道我可以使用ContentProvider
來做到這一點,但我只是將數據庫用於我的應用程序,所以不需要將它製作爲ContentProvider
,我想知道是否有辦法避免這種情況。ContentObserver的SQLite數據庫Android的
謝謝!
我有與SQLite數據庫的Android應用程序,我想知道如何創建和註冊一個ContentObserver
將被通知更改數據庫。我知道我可以使用ContentProvider
來做到這一點,但我只是將數據庫用於我的應用程序,所以不需要將它製作爲ContentProvider
,我想知道是否有辦法避免這種情況。ContentObserver的SQLite數據庫Android的
謝謝!
ContentObserver
只能用ContentProvider
。
這聽起來你想要的是一個事件總線,因此該改變數據庫可以發佈一個事件你的代碼,而你的代碼,感興趣的這種變化可以監聽的事件。基本上,您使用事件總線作爲觀察者模式的通信層。 「三巨頭」 選擇這裏是:
LocalBroadcastManager
從Android支持包
afaik ContentObserver是通用目的野獸 – pskink
@pskink:並非如此。你可以將ContentObserver變成角色,而不是處理ContentProvider,而忽略Uri等,但是除了使用ContentObserver之外,它並沒有給你帶來什麼好處。 * Android *使用'ContentObserver'唯一的地方是使用'ContentProvider'。 – CommonsWare
我想說ContentResolver是Android使用ContentObservers的主要地方,所以使用CR API OP可以實現他們想要的效果 – pskink
沒有什麼用Java(1.7之前),如用於觀看目錄的WatchService? –
只需創建一個內容提供者,它非常簡單 – Thomas