我主要需要的是根据默认 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/