• 0755-82538016
  • 0755-82560826
  • 深圳网站建设_APP小程序开发_博纳网络

    • 网站建设案例
      • ";

        营销网站建设

        全网营销网站

        高端网站建设

        商城网站建设

        外贸网站建设

        小程序开发

        区块链开发

        物联网项目开发

        定制app开发

        在线教育网站

        速成网站建设

        服装网站建设

        餐饮网站建设

        珠宝首饰网站

        机械制造网站

        文化旅游网站

        家装建材网站

        美容化妆品网站

        数码产品网站

        模板案例库

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 网站推广
      • ";

        网站优化基础

        建站优化

        网站优化

        营销推广

        整站优化

        推广帮助

        谷歌搜索

        推广方案

        推广套餐

        推广技巧

        百度排名

        巧用微博推广

        直播视频网站推广法

        微信推广网站方法

        网站外链推广

        公共微信号推广

        网站优化闲谈

        常见问题

        公司资讯

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 网站制作资讯
      • ";

        网站制作

        外贸网站建设

        网站设计

        网站代运营

        深圳网站建设专栏

        深圳小程序开发

        网站改版

        APP开发

        网站建设方案

        安全维护

        软件开发

        平台搭建

        建站行业资讯

        域名注册

        虚拟主机

        企业邮局

        国外主机

        VPS独享空间

        免备案香港服务器

        如何解析域名

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 网站报价
      • ";

        网站报价

        建站方案

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 公司动态
      • ";
        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 关注博纳
      • ";

        网站制作精英团队

        网站建设公司愿景

        公司介绍

        主营业务

        博纳文化

        加入博纳

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 联系我们
      • ";

        网站建设公司联系方式

        网站建设、网站制作公司乘车路线

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
      网站制作资讯

      当前位置:

        主页网站制作资讯APP开发安卓APP项目开发怎样解决定期执行任务的功能设计?

      安卓APP项目开发怎样解决定期执行任务的功能设计?

      发布时间:2019-06-14

      文章编辑:网站建设 文章来源:APP开发 浏览量:次

        安卓APP项目开发怎样解决定期执行任务的功能设计?深圳APP开发公司提醒许多APP都需要定期执行某项或某几项任务,如在联网状态下每隔一段时间上传日志数据给服务器,或在手机处于Idle状态时定期清理存储空间等。
        以往实现这样的功能时,往往需要启动一个定时器不断地轮询执行任务的条件是否满足,如果满足还需启动定时器定期执行任务,这种机制的实现方式比较麻烦。在Android5.0(API21)及以上版本系统中,Google提供了一个叫JobScheduler的功能组件来处理这种场景。
      开发APP公司关于JobScheduler介绍 
       在JobScheduler功能类中,有一个JobService类,它是使用JobScheduler回调的入口点。JobService类中包含以下几个方法。
      1.onStartJob方法
        booleanonStartJob(JobParametersparams)在JobService的子类中,必须重写这个方法。params:传递此任务的相关信息。返回值为true,此service必须在一个单独的子线程中处理工作;返回值为false,此任务没有工作要做。
      2.jobFinished方法voidjobFinished(JobParametersparams,booleanneedsReschedule)这个方法是在任务完成之后被调用。params:这个参数是从onStartJob方法传递过来的。needsReschedule:如为true,此任务只会被执行一次;
      false则会被反复执行。
      3.onStopJob方法
        booleanonStopJob(JobParametersparams)当系统确定必须停止运行任务时,会调用此方法。如果在设定的时间,任务运行的条件不再满足时此方法就会被调用。如要求设备要连接WIFI,但在执行任务的时候,用户把WIFI关掉了;或者任务需要在Idle状态下执行,但手机进入了非Idle状态。params:表示传递此任务的相关信息。返回值为true时,告诉JobManager根据创建Job时的设置是否重新安排此任务执行;返回值为false时,退出Job。不管返回值是什么,Job都必须停止执行。示例代码如下:
      private JobScheduler mJobScheduler; //声明 Job 的 任务 Id 数值 public static final int MY_ BACKGROUND_ JOB = 0; //初始化 JobScheduler 对象 public void initVariables() { ...     mJobScheduler = (JobScheduler) getSystemService( Context. JOB_ SCHEDULER_ SERVICE ); … } //设置 执行 此 任务 需 满足 的 条件、 间隔 时间 和 关机 重 启 后 是否 继续 执行 public static void scheduleJob( Context context) {     JobScheduler js =            ( JobScheduler) context. getSystemService( Context. JOB_ SCHEDULER_ SERVICE);     JobInfo job = new JobInfo. Builder(             MY_ BACKGROUND_ JOB,            // 在 JobSchedulerService 类 中 执行任务             new ComponentName( context, JobSchedulerService. class))
       // 设置 在 联网 状态 下 执行 此 任务 .setRequiredNetworkType( JobInfo. NETWORK_ TYPE_ ANY) //设置 在 设备 处于 Idle 状态 时 执行 此 任务            . setRequiresDeviceIdle( true)            // 设置 在 设备 处于 充电 状态 时 执行 此 任务            . setRequiresCharging( true)            // 设置 任务 的 执行 间隔 时间 为 10 秒            . setPeriodic( 10* 1000)            // 设置 设备 关机 重 启 后, 还是 继续 按 上述 要求 执行 此 任务            . setPersisted( true)            . build();     js. schedule( job); }
      Google的官方文档中描述是只有满足执行任务的条件后,任务才会被执行。实际验证,即使条件不满足,任务也会被执行,也就是如下代码和上述代码的实际执行结果一样。
      public static void scheduleJob( Context context) {     JobScheduler js =            ( JobScheduler) context. getSystemService( Context. JOB_ SCHEDULER_ SERVICE);     JobInfo job = new JobInfo. Builder(             MY_ BACKGROUND_ JOB,
        new ComponentName( context, JobSchedulerService. class))            // 设置 任务 的 执行 间隔 时间 为 10 秒            . setPeriodic( 10* 1000)            // 设置 设备 关机 重 启 后, 还是 继续 按 上述 要求 执行 此 任务            . setPersisted( true)            . build();     js. schedule( job); } //取消 Job private void cancelJob(){     mJobScheduler. cancelAll(); } //创建 Service 类 public class JobSchedulerService extends JobService {     public static final int MY_ JOB_ MESSAGE = 0;     private Handler mJobHandler = new Handler( new Handler. Callback() {        @ Override         public boolean handleMessage( Message msg ) {             Toast. makeText( getApplicationContext(), "JobService
      "JobService task running", Toast. LENGTH_ LONG). show();             jobFinished( (JobParameters) msg. obj, false);             return true;        }    } );    @ Override     public boolean onStartJob( JobParameters params ) {         mJobHandler. sendMessage( Message. obtain( mJobHandler, MY_ JOB_ MESSAGE, params ) );         return false;    }    @ Override     public boolean onStopJob( JobParameters params ) {         Toast. makeText( getApplicationContext(), "JobService task stop", Toast. LENGTH_ SHORT ).show();         mJobHandler. removeMessages( MY_ JOB_ MESSAGE);         return false;    } }
      在AndroidManifest.xml中增加如下声明。
      < uses- permission android: name=" android. permission. RECEIVE_ BOOT_ COMPLETED" /> < service android: name=". service. JobSchedulerService" android: permission=" android. permission. BIND_ JOB_ SERVICE" />
      在上述代码的scheduleJob方法中,设置了执行任务的条件,Google的官方文档中描述只有满足执行任务的条件后,任务才会被执行。实际验证,即使条件不满足,任务也会被执行,也就是scheduleJob方法的代码改成如下所示,运行行结果和上述代码一样。
      public static void scheduleJob( Context context) { JobScheduler js =( JobScheduler) context. getSystemService( Context. JOB_ SCHEDULER_ SERVICE); JobInfo job = new JobInfo. Builder( MY_ BACKGROUND_ JOB, new ComponentName( context, JobSchedulerService. class))
      //设置 任务 的 执行 间隔 时间 为 10 秒 .setPeriodic( 10* 1000) //设置 设备 关机 重 启 后, 还是 继续 按 上述 要求 执行 此 任务 .setPersisted( true) .build(); js. schedule( job); }  好了,APP开发公司本文关于“安卓APP项目开发怎样解决定期执行任务的功能设计?”的APP制作开发知识就分享到这里,谢谢关注,博纳网络编辑整理。
       

      当前文章链接:/construction/appkaifa/2908.html
      上一篇:APP开发怎样解决Snackbar及其特性介绍 下一篇:开发APP关于JobScheduler的替代解决方案
      返回列表
      如果您觉得案例还不错请帮忙分享:

      [声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【qin@198bona.com 】,我们在确认后,会立即删除,保证您的版权。

      相关案例推荐

      • 乐格电器

        乐格电器

        集团网站

        乐格电器

      • 上海乐嘉性格色彩管理咨询有限公司

        上海乐嘉性格色彩管理咨询有限公司

        行业网站

        上海乐嘉性格色彩管理咨询有限公司

      • FWCARD行业网站建设作案例

        FWCARD行业网站建设作案例

        行业网站

        FWCARD行业网站建设作案例

      资讯分类

      • 网站制作
      • 外贸网站建设
      • 网站设计
      • 网站代运营
      • 深圳网站建设专栏
      • 深圳小程序开发
      • 网站改版
      • APP开发
      • 网站建设方案
      • 安全维护
      • 软件开发
      • 平台搭建
      • 建站行业资讯
      • 域名注册
      • 虚拟主机
      • 企业邮局
      • 国外主机
      • VPS独享空间
      • 免备案香港服务器
      • 如何解析域名

      最新发布

      • 社区APP开发上线后影响用户使用的粘性有哪些?
      • 为什么说大健产业O2OAPP开发潜力无限
      • 网络公司对社区O2OAPP开发基本认识
      • 工业4.0时代怎样做好一个APP的开发工作?
      • APP开发公司分析APP应用开发下一个巨头在哪些领域?
      • APP电子商务平台开发前景如何?
      • 社交类型APP开发需要具备的五个必要条件
      • 社交类型APP平台开发使用小程序还是APP模式好?
      • 使用HTML语言开发APP商城可以吗?
      • 社区O2OAPP开发的方向选择

      相关资讯

      • APP网站制作流程以及栏目分布
      • 企业网站优化人员面对搜索引擎的困惑
      • 企业门户网站如何做好针对搜索引擎的优化工作
      • APP/PC购物商城网站如何做好产品图片的优化技巧
      • 网站软文内容以及网站外链存在的几种形式对网站有多大影响
      • 如何做好网站软文标题的描述更适合搜索引擎的需要?
      • 网站建设好后期出现被搜索引擎降权的几个主要因素
      • 小程序开发制作前途取决于市场,别被您的同行抢了先机
      • APP开发公司提醒您关注:电商平台要求商家“二选一”引多方不满 专家提建议
      • APP为什么会在我们的手机界面上变成僵尸图标?

      热门搜索

      • 小程序开发
      • 网站建设方案
      • 手机网站制作
      • 福田网站建设
      • 网站制作费用
      • 深圳网站制作
      • 网页设计
      • 企业网站开发
      • 深圳网站开发
      • 网站代运营

      Copyright © 2021 博纳网络 版权所有  粤ICP备17054727号

      • 🏠

        首页

      • 💬

        咨询

      • 📞

        通话

      • 📂

        案例

      • ⬆

        返回