ACTION_TIME_CHANGED Трансляция вызывается каждую минуту - PullRequest
0 голосов
/ 28 ноября 2018

в API 19 и между API 23 каждую минуту запускается широковещательная рассылка.Мой фильтр Intent для трансляции имеет только фильтр android.intent.action.TIME_SET и зарегистрирован во время выполнения.

Эта проблема не наблюдается на всех устройствах, работающих на вышеуказанной платформе.Только несколько наборов устройств.

Это известная ошибка AOSP или есть ли обходной путь?

Мое требование - вызывать трансляцию всякий раз, когда пользователь вручную изменяет время, и автоматическое обновление отключается для даты и времени

1 Ответ

0 голосов
/ 28 ноября 2018

Правда, у меня та же проблема, но она не работала в Samsung и хорошо работает с другими телефонами, и на самом деле я решил, что не зависимо от того, что Broadcast делает AlarmManager и отправляет Broadcast с него, что-то подобное, и вы можете сделатьэто в фоновом режиме с yourService.startAlarm ()

          public void startAlarm()
        {
     Calendar calendar = Calendar.getInstance();
     calendar.add(Calendar.MILLISECOND, INTERVAL_MILLIS);
     Log.e("AlarmWidget","Started");
     Intent alarmIntent = new Intent(AqiWidgetProvider.ACTION_AUTO_UPDATE);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, ALARM_ID,         alarmIntent, PendingIntent.FLAG_CANCEL_CURRENT);

    AlarmManager alarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
    // RTC does not wake the device up
    alarmManager.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), INTERVAL_MILLIS, pendingIntent);

}


    public void stopAlarm()
{
    Intent alarmIntent = new Intent(AqiWidgetProvider.ACTION_AUTO_UPDATE);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, ALARM_ID,     alarmIntent, PendingIntent.FLAG_CANCEL_CURRENT);
    AlarmManager alarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
    alarmManager.cancel(pendingIntent);
}
...