为Android日历运行服务更改?

时间:2016-04-01 12:56:58

标签: android android-service android-contentprovider contentobserver

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

如果我希望ContentObserver无限期运行,则需要一个线程在应用程序关闭时继续运行(最终我希望它在移动启动时启动)。

服务是一个很好的解决方案吗?或者让服务一直运行是不是很糟糕?是否会耗尽大量电池,即使我要做的只是保持ContentObserver注册?

据我所知,我唯一的选择是使用定期民意调查,但我宁愿不这样做。

1 个答案:

答案 0 :(得分:0)

  

在这种情况下,似乎没有广播支持,

但是剂量。您必须使用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>