這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)Android應(yīng)用中無法設(shè)置鬧鐘的啟動時(shí)間如何解決,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
Android開發(fā)中,alarmManager在5.0以上系統(tǒng),啟動時(shí)間設(shè)置無效的問題
做一個(gè)app,需要后臺保持發(fā)送心跳包。由于鎖屏后CPU休眠,導(dǎo)致心跳包線程被掛起,所以嘗試使用alarmManager定時(shí)喚醒Service發(fā)送心跳包。
以下是開啟alarmManager的代碼
//開啟輪詢服務(wù) public static void startPollingService(Context context, int seconds, Class<?> cls,String action) { //獲取AlarmManager系統(tǒng)服務(wù) AlarmManager manager = (AlarmManager) context .getSystemService(Context.ALARM_SERVICE); //包裝需要執(zhí)行Service的Intent Intent intent = new Intent(context, cls); intent.setAction(action); PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); //觸發(fā)服務(wù)的起始時(shí)間 long triggerAtTime = SystemClock.elapsedRealtime(); //使用AlarmManger的setRepeating方法設(shè)置定期執(zhí)行的時(shí)間間隔(seconds秒)和需要執(zhí)行的Service manager.setRepeating(AlarmManager.ELAPSED_REALTIME, triggerAtTime, seconds * 1000, pendingIntent); }