Провайдер календаря изменил событие, которое не было запущено вовремя

У меня много лет назад есть приложение, которое слушает события, когда меняются события календаря. Я сделал это, добавив это в манифест:

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

Это всегда работало для меня, так как приложение существует много лет назад. Раньше у меня были устройства Samsung, где в календаре было приложение под названием S Planner. Теперь у меня есть Asus Zenfone Max. На нем установлен Google Calendar. Но сейчас этот слушатель не работает должным образом. Так как я добавляю новое событие, пока слушатель не запустится, происходит большая задержка. Даже я думаю, что когда я создаю событие календаря, слушатель не запускается, если я не закрою и не открою приложение календаря несколько раз. Проблема в том, что слушатель запускается в какой-то момент, но не тогда, когда это должно быть, вместо этого возникает большая задержка, так как я создаю событие календаря, пока слушатель не будет вызван. Почему такая задержка?

0 ответов

Другие вопросы по тегам