广播接收器呼叫延迟

问题描述:

我在某些时间输入上呼叫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"); 
+0

什么是'timeinMillis'什么android版是你继续? –

+0

timeinMillis是当我调用BroadcastReceiver时在4.4和5.0的Android和未在其他版本上测试时的警报时间 - 我得到延迟。 –

注:与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

这个工作适合你吗? –