ACTION_TIME_CHANGED每分钟广播一次

时间:2018-11-28 09:28:57

标签: android datetime broadcast

在API 19和API 23之间的

每分钟触发广播。我的广播Intent过滤器仅具有android.intent.action.TIME_SET过滤器,并且已在运行时注册。

在上述平台上运行的所有设备上均未观察到此问题。只有少数几套设备。

这是一个已知的AOSP错误,还是有任何解决方法?

我的要求是,每当用户手动更改时间并关闭“日期和时间”自动更新功能时,都应呼叫广播

1 个答案:

答案 0 :(得分:0)

是的,我有同样的问题,但是它不能在三星中使用,并且不能与其他手机配合使用,实际上我通过不依赖于广播执行AlarmManager并从中发送广播来解决了这一问题,您可以做到使用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);
}