我正在使用報警管理器在特定時間觸發廣播。但經過多次測試後,我發現有時廣播收到很晚。有時5秒,10秒,15秒甚至更多。特別是當設備被鎖定時。我做過各種實驗。我最不成問題的代碼就在這裏。從等待中的意圖接收廣播的Android問題
即使使用喚醒鎖後,我不知道我缺乏什麼。
燒成意圖
Intent intent = new Intent(this.getApplicationContext(), BroadCastReceiver.class);
//..... some extras
PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), code, intent, 0);
manager.setRepeating(AlarmManager.RTC_WAKEUP, time, 1000 * 120 , pi);
接收廣播
public void onReceive(Context context, Intent intent)
{
WakeLocker.acquire(context);
.......
Intent alarm = new Intent(context, xyz.class);
alarm.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(alarm);
}
和釋放激活鎖定在破壞()的xyz活性。
定製WakeLocker類 公共抽象類WakeLocker {
private static PowerManager.WakeLock wakeLock;
public static void acquire(Context ctx) {
if (wakeLock != null) wakeLock.release();
PowerManager pm = (PowerManager) ctx.getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP |
PowerManager.ON_AFTER_RELEASE, "haris");
wakeLock.acquire();
}
public static void release() {
if (wakeLock != null) wakeLock.release(); wakeLock = null;
}
}
您使用的是Android棒棒糖嗎?看看這個:http://developer.android.com/intl/es/training/scheduling/alarms.html – logoff 2015-11-12 20:02:32