use*_*695 6 android calendar broadcastreceiver asus
很久以前我有一个应用程序,它在日历事件更改时侦听事件。我这样做了,将其添加到清单中:
<receiver android:name="your.package.name.CatchChangesReceiver"
android:priority="1000" >
<intent-filter>
<action android:name="android.intent.action.PROVIDER_CHANGED" />
<data android:scheme="content" />
<data android:host="com.android.calendar" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
然后创建一个扩展广播接收器的简单类:
public class CatchChangesReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// add processing here with some query to content provider
// in my project I use this selection for getting events:
final String SELECTION = CalendarContract.Events.CALENDAR_ID + "="
+ calendarId + " AND " + "("
+ CalendarContract.Events.DIRTY + "=" + 1 + " OR "
+ CalendarContract.Events.DELETED + "=" + 1 + ")" + " AND "
+ CalendarContract.Events.DTEND + " > "
+ Calendar.getInstance().getTimeInMillis();
}
}
Run Code Online (Sandbox Code Playgroud)
这一直对我有用,因为应用程序早在几年前就存在了。我曾经拥有三星设备,其中日历是一个名为 S Planner 的应用程序。现在我有一台华硕 Zenfone Max。它安装了谷歌日历。但是现在这个监听器不能正常工作。由于我在侦听器启动之前添加了一个新事件,因此延迟很大。甚至我认为,当我创建日历事件时,除非我多次关闭并打开日历应用程序,否则侦听器不会启动。问题是侦听器在某个时刻启动,但不是应该在什么时候启动,相反,由于我创建日历事件直到调用侦听器,因此存在很大延迟。为什么会有这样的延迟?
| 归档时间: |
|
| 查看次数: |
498 次 |
| 最近记录: |