美文网首页
创建定时任务

创建定时任务

作者: gogoingmonkey | 来源:发表于2017-06-13 09:03 被阅读59次

Android中的定时任务实现方式有两种,一种是Java API 里提供的Timer类,一种是Android的Alarm机制,Java里面的timer (不适合长期在后台运行的定时任务, 为了能让电量长时间在不操作的时候耐用,都有自己的休眠策虐,安卓是让CPU睡眠,就可能不执行Timer ),Alarm 机制具有唤醒CPU的功能。这里的唤醒CPU不是唤醒屏幕。
AlarmManager manager = (AlarmManager)getSystemService(content.ALARM_SERVICE);
第三个参数pengdingIntent ,一般调用getService()或者getBroadcast()方法获取能执行一个服务或者广播的pendingIntent.当定时任务被执行时,服务的onstartCommand()和广播的onRecived()就可以执行。

public class LongTime  extends Service{
    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                //执行具体的操作
            }
        }).start();
        AlarmManager   manager = (AlarmManager) getSystemService(ALARM_SERVICE);
        int anhours = 60*60*1000;
        long l = SystemClock.elapsedRealtime() + anhours;
        Intent   in  = new Intent(this,LongTime.class);
        PendingIntent service = PendingIntent.getService(this, 0, in, 0);
        manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,l,service);
        return super.onStartCommand(intent, flags, startId);
    }
}

      值得注意的是Android4.4开始系统出发时间会变得不准确,系统耗电性能优化,系统会自动检测当前有几个Alarm,然后把相近的任务集中到一起,大幅度减少CPU被唤醒。但是也可以通过setextra();

相关文章

  • Spring动态创建定时任务

    创建config 插入定时任务 服务启动时自动创建定时任务

  • crontab使用

    普通用户创建定时任务: ​ crontab -e #给自己创建定时任务 ​ cron...

  • springboot @Scheduled创建定时任务七

    创建定时任务 在Spring Boot的主类中加入@EnableScheduling注解,启用定时任务的配置 创建...

  • crontab 定时任务

    查看当前用户的定时任务列表 创建(编辑)定时任务列表 定时任务格式 删除定时任务 注意 一定要设置crontab的...

  • 创建定时任务

    Android中的定时任务一般有两种实现方式,一种是使用Java API里提供的Timer类,一种是使用Andro...

  • 创建定时任务

    Android中的定时任务实现方式有两种,一种是Java API 里提供的Timer类,一种是Android的Al...

  • mysql定时任务

    创建存储过程,保留100条数据,其他删除 创建定时任务:每晚四点触发 启动定时任务:

  • laravel 设置定时任务(任务调度)

    创建定时任务 查看定时任务 定义调度 在App\Console\Commands下创建Test.php 编辑 ap...

  • laravel 任务调度

    创建定时任务文件 编辑文件内容 修改Kernel 文件 添加定时任务

  • MAC 设置定时任务crontab

    创建定时任务 启动 创建任务 * * * * * command对应为: 时间设置-需要执行的任务举例说明: 保存...

网友评论

      本文标题:创建定时任务

      本文链接:https://www.haomeiwen.com/subject/aucctxtx.html