zoukankan      html  css  js  c++  java
  • android监控上传小demo之第二步 设定定期执行

    上一篇博客中我们介绍了怎样让程序一开机就运行

    那么,根据我们上次的思路“开机运行一个定时器,定时执行某项服务”,来实现定期执行上传任务

    我们需要的是AlarmManager

    alarmmanager的作用类似于定时器,它可以让android在未来某一时刻运行某个程序,他的好处在于哪怕启动他的activity现在是处于inactive 状态,它仍然会精准的执行,除非你重启设备。

    alarmManager 可以支持很多中触发形式,有单次,有循环,有自定义循环三种模式(想想我们闹铃的三种模式),我们可以在API上看到这些信息


    set(int type, long triggerAtTime, PendingIntent operation)

    Schedule an alarm.
    setInexactRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)

    Schedule a repeating alarm that has inexact trigger time requirements; for example, an alarm that repeats every hour, but not necessarily at the top of every hour.
    setRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)

    Schedule a repeating alarm.

    我们这里使用的是循环    也就是setRepeating

    说下这个参数

    首先type 是代表计时器的几种不同的计时方式,他们包含ELAPSED_REALTIME、ELAPSED_REALTIME_WAKEUP、RTC、以及RTC_WAKEUP

    Elapse 系列是从开机开始算起,包括机器休眠时间   而rtc ,指的是当前时间,之后加没加wakeup 的参数修饰的意思是   到达时间后是否在到达时间后唤醒设备处理(有wakeup),还是等待用户wakeup机器后运行(无walkup)

    后面的两个triggerAtTime和interval 代表的是起始时间和步长,最后一个是 operation  你需要启动的intent  在这里注意一下,此处的pendingintent 是预备使用的intent

    ok,放代码

            PendingIntent mAlarmSender = PendingIntent.getService(context, 0, new Intent(
                    context, UploadImgService.class), 0);
    
            long firstTime = SystemClock.elapsedRealtime();
            AlarmManager am = (AlarmManager) context
                    .getSystemService(context.ALARM_SERVICE);
            am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime,
                    10 * 6000, mAlarmSender);

    注意一下,这个intent 就是我们要运行的服务,

    这个含义就是每隔1min运行一次uploadImgService 的这个服务

    下次我们着重讲uploadImgService 的实现

  • 相关阅读:
    《Graph Attention Network》阅读笔记
    Spark 中的机器学习库及示例
    Spark 中 RDD的运行机制
    Spark 的 python 编程环境
    1.10系统调用和库函数
    nginx中的configure脚本
    nginx中的main函数
    IPv4,IPv6套接字地址结构
    unix网络编程中的地址转换函数
    有关nginx中Strings模块中ngx_explicit_memzero()函数的死区消除优化问题
  • 原文地址:https://www.cnblogs.com/jicheng1014/p/2312627.html
Copyright © 2011-2022 走看看