public static void startPullingService(Context context, int seconds, Class<?> cls, String action){
//獲取AlarmManager系統服務
AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
//封裝需要執行service的intent
Intent intent = new Intent(context, cls);
intent.setAction(action);
PendingIntent pendingIntent = PendingIntent.getService(context,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
//觸發服務的起始時間
long triggerStartTime = SystemClock.elapsedRealtime();
//使用AlarmManger的setRepeating方法設定定期執行的時間間隔(seconds秒)和需要執行的Service
manager.setRepeating(AlarmManager.ELAPSED_REALTIME,triggerStartTime+(seconds*1000),seconds*1000,pendingIntent);
以上是我啟動的一個定時notification實作訊息推送的服務,在setRepeating中設定間隔時間,我設定的是1*1000,但是在模擬器上無論將這個值設定為什么,都是1分鐘提示一次
uj5u.com熱心網友回復:
因為從Android5.1開始,為了優化電量,最低的輪詢時間都是一分鐘!uj5u.com熱心網友回復:
AlarmManager 已經過時了,可以考慮WorkManager,對于后臺的定時器或者鬧鐘在高版本手機上是不會生效的轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/15453.html
標籤:Android
上一篇:QFTP怎么實作斷點續傳的上傳呢
下一篇:應用的Gids變化情況疑問
