日历提供程序已更改事件未按时触发

时间:2016-10-04 07:52:36

标签: 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>

然后创建一个扩展广播接收器的简单类:

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();
    }
}

这一直对我有用,因为应用程序存在于多年前。我以前有三星设备,日历是一个名为S Planner的应用程序。 现在我有一个华硕Zenfone Max。它已安装Google日历。但现在这个听众无法正常工作。由于我在听众启动之前添加了一个新事件,因此会有很大的延迟。即使我认为当我创建日历事件时,除非我多次关闭并打开日历应用程序,否则侦听器不会启动。 问题是监听器是在某个时刻启动的,但不应该在它应该启动时,相反,自从我创建日历事件直到监听器被调用之后,存在很大的延迟。为什么会出现这种延迟?

0 个答案:

没有答案