Android Notification & Alarmmanager - 时间不同

标签 android notifications alarmmanager timing

我通过 BroadcastReceiver 和 AlarmManager 发出了定时通知:

static public void setReminderNotification(Context c){
    AlarmManager alarmManager = (AlarmManager) c.getSystemService(Context.ALARM_SERVICE);

    Intent alarmIntent = new Intent(c, ReminderReceiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(c, 12460, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    iTime = 24000;
    if (iTime > 0) {
        alarmManager.cancel(pendingIntent);
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + iTime, iTime, pendingIntent);
    }else if(iTime == 0){
        alarmManager.cancel(pendingIntent);
    }
}

我认识到,警报不会每 24 秒启动一次。这取决于。我在接收器中进行了记录:(格式:H - m - s)

Post Nofification: 10 - 47 - 0
Post Nofification: 10 - 47 - 13
Post Nofification: 10 - 47 - 37
Post Nofification: 10 - 48 - 1
Post Nofification: 10 - 48 - 25
Post Nofification: 10 - 49 - 0
Post Nofification: 10 - 49 - 13
Post Nofification: 10 - 49 - 37
Post Nofification: 10 - 50 - 1
Post Nofification: 10 - 50 - 25
Post Nofification: 10 - 51 - 0
Post Nofification: 10 - 51 - 13
Post Nofification: 10 - 51 - 37
Post Nofification: 10 - 52 - 1
Post Nofification: 10 - 52 - 42
Post Nofification: 10 - 53 - 0
Post Nofification: 10 - 53 - 13

我想知道为什么通知有时更短/更长。 有什么解决办法吗?

最佳答案

注意:从 API 19 (KITKAT) 开始,警报传送不准确:操作系统将转移警报以尽量减少唤醒和电池使用。有新的 API 来支持需要严格交付保证的应用程序;参见 setWindow(int, long, long, PendingIntent) 和 setExact(int, long, PendingIntent)。 targetSdkVersion 早于 API 19 的应用程序将继续看到以前的行为,即所有警报都在请求时准确传递。

请看这里http://developer.android.com/reference/android/app/AlarmManager.html

关于Android Notification & Alarmmanager - 时间不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21279616/

相关文章:

android - 每天准确重复报警(报警管理器)

android - NotificationCompat.Builder 缺少 build() 方法

java - Android – AlarmManager 和 BroadcastReceiver 的问题

java - PHP 服务器未使用 JSON 对象进行连接

android - 我可以让 Android WebView 支持其他图像格式(例如 TIFF)吗?

android - 在 Canvas 上绘制 fragment View

c# - 在 Xamarin.Android 中向通知添加声音

android - 在 OkHttp 中使用安全的 websockets (wss)

java - 通知音

java - Java 中的 "Alert Management System"以支持来自跨技术应用程序的警报