位置: 编程技术 - 正文

Android IntentService解析

编辑:rootadmin
Android IntentService解析

推荐整理分享Android IntentService解析,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

在开发安卓应用程序时,除非你指定,否则绝大部分执行动作都运行UI线程中。这种机制会引发一些问题,因为耗时操作会妨碍用户交互行为。这会让用户感到懊恼,甚至引发ANR错误。幸运的是,Android框架提供了一些类,它帮助我们把这些耗时的操作到转移到后台线程中去了。个人觉得最有用的是IntentService类了,但IntentServce也有它的几个局限性: 1. 它不能和用户界面直接交互,你必须把执行的结果发送到Activity中 2. 发送给IntentService的请求是有序的。如果IntentService正在处理任务A,而你又发送了一个任务B请求,此时IntentService只有等到执行完任务A后才会执行任务B。 3. IntentService中正在运行的操作不能被中断。

尽管IntentService有些局限性,但执行简单的后台操作是一个比较好的选择,下面为大家讲述如何使用IntentService。

创建一个IntenService

创建一个IntentService非常简单,只要写一个继承IntentService的类即可,并实现构造方法以及onHandleIntent(Intent workIntent)抽象方法即可。

因为onHandleIntent(Intent workIntent)方法运行在后台一个线程中,你可以把耗时的任务转到此处而不必担心它会阻塞UI线程。任务做完后它会自动停止服务。

注册IntentService

仅仅创建了IntentService依然无法使用,你需要在清单文件中去注册它。

Android IntentService解析

现在你写的IntentService类就可以使用了,那么怎样使用呢?很简单,你可以通过一个显式意图去启动IntentService,你可以在意图中添加相关的数据以支持你的业务逻辑。

一旦你调用了startService(),IntentService就会执行onHandleIntent(),任务结束后服务也就自动停止。

在IntentService中发送广播

那么耗时的任务数据状态通过怎样的形式才能呈现给用户呢?一种方式是你可以通过发送广播来实现。通过广播将任务产生的状态数据发送到广播接收器,在接收器中可以将数据呈现到UI上。

接受广播发送过来的数据

为了接受广播发送过来的数据,你需要创建一个类,该类继承BroadcastReceiver类,并实现onReceive()方法。

广播接收器一旦定义好后,你可以定义过滤器以区分动作事件

要保证广播接收器能够接受到消息,必须对其进行注册,一般在Activity中onCreate()中对其进行注册,在onDestory()中注销。

LocalBroadcastManager发送的广播只能在程序内被接受因此它能够有效减低信息泄露。

Android开发——入门1 在网易云课堂上找到一个特别适合像我这种Android菜鸟入门的学习视频,链接

ListView大全 ArrayAdapter方式设置listview利用android自带listview的xml设置简单的listView思路:MainActivity继承ListActivity,并且在onCreate方法中,首先设置contentView()在activity_main

Android优化 摘要:Android应用优化主要集中在内存和UI流畅度上,从内存占用与泄露、UI流畅度的帧数和响应时间到IO的阻塞式响应时间等,腾讯移动性能评测专家叶

标签: Android IntentService解析

本文链接地址:https://www.jiuchutong.com/biancheng/384195.html 转载请保留说明!

上一篇:Android下的单元测试(android下的单元测试要配置以下说法不正确的是)

下一篇:Android开发——入门1(android开发菜鸟教程)

  • 税务师考试咨询电话
  • 注会其他专业可以考吗
  • 专利没有资本化成本如何入账
  • 项目奖金个人所得税怎么算
  • 一般纳税人厂房出租怎么开票
  • 财务软件续费怎么记账
  • 车船税是费用吗
  • 政府返还的增值税怎么算
  • 资产总额季度平均
  • 专家咨询费模板
  • 股东转钱到公司怎么备注
  • 虚开发票企业所得税怎么补缴税?
  • 持续经营损益怎么算
  • 提取备用金现金流量
  • 违约金抵扣货款等于现金折扣吗会计分录
  • 发票丢失可以冲销吗
  • 扣除工资作为违约金
  • 收取境外服务费收入会计分录
  • 公司收到股东的钱现金流量表怎么填
  • 资源税征收管理纳税期限
  • 退役士兵创业就业政策
  • 精装房不同合同的区别
  • 购买国债兑现时要交税吗
  • 文化事业费征收
  • 水土保持补偿费收费标准
  • 小微企业附加税减半
  • 外币折算差额怎么记账
  • 资金占用利息怎么开票
  • 法人向公司借款用途怎么写
  • 在建工程如何评估价值
  • win10 5月更新已知bug
  • 跨年发票能不能报销
  • 消防器材怎么做?
  • php ftp功能
  • 家用电脑分为哪几类
  • 资产和负债的计税基础金额的确认思维导图
  • 堡垒封印
  • 模型调参是调节什么
  • 常见浏览器兼容软件
  • 微软和梅赛德斯奔驰宣布合作
  • 企业缴纳水利建设基金的依据是什么
  • 会计成本确认
  • python 动态
  • 融资租赁的种类
  • 财务会计的主要目标和工作内容包括
  • 分公司撤销跨区经营
  • 关于餐饮行业
  • 会计物料超损费怎么算
  • 费用票可以抵扣多少企业所得税
  • 管理费用一般包含研发费用吗
  • 原材料按实际成本核算与按计划成本核算相比
  • 建筑企业材料费能否加计扣除
  • 会计凭证销毁的地方
  • 面向小微企业
  • linux临时目录在哪
  • 升级bios后无法启动
  • uphclean.exe - uphclean进程是什么意思
  • dgservice.exe是什么
  • windows7怎
  • linux 零拷贝技术
  • regloadr.exe - regloadr是什么进程 有什么用
  • win10无法
  • 如何在linux shell关闭443端口
  • linux html编辑器
  • js网页自动化
  • unity2d图片调后一层
  • unity的ugui
  • pythonlist排序算法
  • js正则表达式写法
  • cument.execCommand()用法深入理解
  • jquery1.11.3
  • android 屏幕适配方案
  • 临时占地耕地占用税纳税义务发生时间
  • 村委会税务登记流程
  • 重庆电子税务局怎么绑定办税人员
  • 山东国税网
  • 小规模纳税人能开9个点的发票吗
  • 出口退税网上申报流程
  • 考上如皋地税局好吗
  • 淮北税务局领导简介
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设