1
我已經實施了報警管理器來定期喚醒後臺服務,每15分鐘一次。它運行良好,但自從包含DOZE模式Android 6.0後,似乎表現得很奇怪,並且每15分鐘就不醒來。雖然,我現在用的方法alarm.setExactAndAllowWhileIdle(),但仍然無法在空閒狀態後臺服務報警管理器
在這裏工作是我實現報警管理方法
private void serviceRunningBackground()
{
final Intent restartIntent = new Intent(this, service.class);
restartIntent.putExtra("ALARM_RESTART_SERVICE_DIED", true);
alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Handler restartServiceHandler;
restartServiceHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
pintent = PendingIntent.getService(getApplicationContext(), 0, restartIntent, 0);
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1) {
Log.d(TAG, " Marshmellow "+ TIMER_START_TIME);
alarmMgr.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, 900000, pintent);
} else {
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 900000, pintent);
}
sendEmptyMessageDelayed(0, TIMER_START_TIME);
}
};
restartServiceHandler.sendEmptyMessageDelayed(0, 0);
}
任何幫助將是appreciated..thanks
您正在測試現在的哪個版本? –
Nexus 5上的Android 6.0預覽, – user3290805
使用'System.currentTimeMillis()+ 900000',它會在15分鐘後觸發警報。您需要在'service.java'的初始方法內再次編寫這樣的代碼,以便在接下來的15分鐘內設置警報。 –