android中定时任务的两种实现

原创 2015年07月10日 15:44:00

目前有两种方式参考:

1、使用AlarmManager,reboot之后定时任务被清除

如:

        AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        Intent intent = new Intent(Constant.ServiceName);
        intent.putExtra("action", action);
        PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        long triggerAtMillis = SystemClock.elapsedRealtime();
        long intervalMillis = 2 * 60 * 60 * 1000; // 2 hour
        manager.setRepeating(AlarmManager.ELAPSED_REALTIME, triggerAtMillis, intervalMillis, pendingIntent);

2、5.0以后可使用JobSheduler,用JobInfo.Builder生成JobInfo加到JobSheduler中,具体任务的执行逻辑需要继承实现JobService

     JobInfo.Builder(int jobId, ComponentName jobService)方法将JobInfo和Jobservice关联。生成JobInfo是可以设置执行条件,比如:网络,系统是否空闲,是否充电等。

     与AlarmManager有一个不同是JobSheduler机制可以通过调用JobInfo.Builder.setPersisted(boolean isPersisted)设置当手机重启后任务也不会被清除。

相关文章推荐

spring定时任务的两种实现

  • 2016年10月12日 11:10
  • 3KB
  • 下载

Android定时执行任务的两种办法

一般来说,在Android中有很多地方都要用到定时执行或者延迟执行,这里给记录一下两种比较常见的方法 1.采用Handler的postDelayed(Runnable, long)方法,比较简单也很实...

spring容器框架定时任务实现的两种方式

spring容器框架自带一种定时任务 工具 spring Task 以及另外一种定时任务设置工具Quartz。 spring Task 方式: 这种定时方式其实是一种轻量的Quartz,这种方式有...

ThinkPHP实现定时执行任务的两种方法

在平常的项目中我们总是会遇到需要将某个方法任务定时执行的问题,定时执行方法任务如果我们拥有服务器的权限,我们可以直接在服务器设置定时任务,例如在Windows的任务计划程序中进行设置,在Linux中编...
  • Zhihua_W
  • Zhihua_W
  • 2016年09月22日 18:19
  • 13291

Spring 实现 定时任务(两种)

定时任务的实现有多种: 1 JAVA 自己的一套实现 通过 java.util.Timer , java.util.TimerTask来实现                             ...

Android 下实现定时执行任务

  • 2011年02月27日 15:18
  • 6KB
  • 下载

spring两种定时任务

一、Quartz 第一种,作业类继承自特定的基类:org.springframework.scheduling.quartz.QuartzJobBean。 第一步:定义作业类   Java代...

spring中编写定时任务的两种方法

使用spring编写程序的时,经常会用到自动任务来完成一些操作,我这边整理了两种实现方式: 第一种方式: 第一步:编写作业类 即普通的pojo,如下: Java代码   1. ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android中定时任务的两种实现
举报原因:
原因补充:

(最多只允许输入30个字)