运行 android 日历更改服务?

Running service for android calendar changes?

我的目标是编写一个应用程序来监听 android 日历中的变化。在这种情况下似乎不支持广播,但需要的是 ContentObserver.

如果我想要 ContentObserver 无限期地 运行,它需要一个线程在应用程序关闭时保持 运行ning(最终我希望它在移动启动时启动) .

服务是解决这个问题的好方法吗?还是一直有 运行ning 服务不好?即使我要做的只是保持 ContentObserver 注册,它会耗尽大量电池吗?

据我所知,我唯一的选择是使用定期轮询,但我宁愿不这样做。

It doesn't seem like there's support for broadcasts in this case,

但确实如此。你必须使用 ACTION_PROVIDER_CHANGED

android:scheme="content"
android:host="com.android.calendar"

因此具有此 intent-filter 的接收器可以工作:

<receiver
   android:name=".CalendarChangeReceiver">
        <intent-filter>
            <action android:name="android.intent.action.PROVIDER_CHANGED"/>
            <data android:scheme="content"/>
            <data android:host="com.android.calendar"/>
        </intent-filter>
</receiver>