后台实现定时任务

关于使用 AlarmManager 的注意事项
AlarmManager 和 Jobscheduler
Android后台任务开发的发展和实践(二)
Android 进程保活系列:(三)利用定时器和系统广播
JobService 7.0 定时任务不生效
JobService 总结

场景:周期性的启动Service,执行任务


4.4以上的 6.0以下的.png

4.4

6.0以上的.png
  AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);
        Intent i = new Intent(this, MessageService.class);
        PendingIntent pi = PendingIntent.getService(this, 0, i, 0);
        //4.4以上,6.0以下
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            manager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), pi);
        }
        //6.0以上
         else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            manager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), pi);
        }
        //4.4以下
         else {
            // manager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), triggerAtTime, pi);
            manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), pi);
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容