广播接收器呼叫延迟
问题描述:
我在某些时间输入上呼叫BroadcastReceiver,但我在广播的onReceive中收到10-15秒的延迟。广播接收器呼叫延迟
Activity.class
Intent intent = new Intent(DashboardActivity.this, TimeAlarm.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(DashboardActivity.this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
alarmManager.set(AlarmManager.RTC_WAKEUP, timeinMillis, pendingIntent);
TimeAlarm.class
public class TimeAlarm extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
Debug.e("RECEIVER_TIME", "ALARM_READY");
答
注:与API开始19(KITKAT)报警输送是不精确的:所述操作系统将按顺序移动警报o尽量减少唤醒和电池使用。有新的API支持需要严格交付保证的应用程序;请参阅setWindow(int,long,long,PendingIntent)和setExact(int,long,PendingIntent)。 targetSdkVersion早于API 19的应用程序将继续看到之前的行为,即所有报警在请求时都准确传送。 https://developer.android.com/reference/android/app/AlarmManager.html
如果它真的很重要,没有延迟,使用setExact
的API 19,20和21,并使用setExactAndAllowWhileIdle
的API 23和24
+0
这个工作适合你吗? –
什么是'timeinMillis'什么android版是你继续? –
timeinMillis是当我调用BroadcastReceiver时在4.4和5.0的Android和未在其他版本上测试时的警报时间 - 我得到延迟。 –