android - 收听新的日历事件

标签 android events calendar android-broadcast

我主要需要的是根据默认 android 日历 (Google) 中的事件使用react。

查询提供者并在任何给定时间获取事件相当容易,但我的数据必须始终保持一致。 我想要的是避免每 x 分钟查询提供者以检查新事件。

我找不到任何关于应用何时存储新事件的系统广播(仅当事件被触发时)。 明确一点,我不想在我的应用程序中创建、删除等事件,我只想监视它们,我需要创建新事件的时刻,以便我可以重新查询提供程序。

我知道 Google 有一个(记录很少的)Calendar API,有没有使用它的经验?它适合我的需求吗?

最佳答案

this answer to a similar question 中所述, 你可以使用 BroadcastReceiver通过使用以下 Intent 过滤器创建 BroadcastReciver 从默认 Android 日历接收更改事件:

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

请注意,此接收器不会传递任何信息 - 您需要在收到该信息后查询日历 API 以查找更改的内容。如果您正在执行可能需要很长时间的操作,您可能需要考虑使用 WakefulBroadcastReceiver和一个 IntentService执行更长的运行过程(因为 BroadcastReceiver 必须在 10 秒内完成,根据 onReceive() documentation )。

关于android - 收听新的日历事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21168766/

相关文章:

android - 如何向 Android Spinner 添加搜索选项?

jquery:如何检测事件是由脚本还是鼠标滚轮调用的?

java - Android:如何在 YEAR/MONTH/DATE Spinners 中获取日历

java - 如何检查某个日期是否已过

pdf - 使用 GAS 将带有事件的 Google 日历导出为 PDF

android - XmlPullParserException 应为 end_tag

android - 使用相机的指纹扫描仪

java - Android蓝牙远程控制项目指导

jquery - 使用 jQuery 在 AngularJS 元素指令上绑定(bind)事件

c# - 事件、委托(delegate)、回调、INotifyPropertyChanged