位置: 编程技术 - 正文

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开发菜鸟教程)

  • 一般纳税人服务费税率
  • 小规模纳税人怎么变成一般纳税人
  • 个税申报可以去税务局吗
  • 金税盘备份文件名
  • 短期借款属于经营性资产吗
  • 已经认证的发票对方可以作废吗
  • 预缴增值税是否要预缴印花税
  • 营改增对小规模的影响
  • 公司单独核算项目财务怎么处理?
  • 事业单位的股东是什么
  • 进口增值税已付发票未到如何入账
  • 出口退税代理费用大概多少
  • 报废资产处置收入怎么计税
  • 个体工商户的生产、经营所得
  • 缴纳印花税需要计提吗?
  • 税收滞纳金算不算营业利润
  • 会务费发票税率是
  • 企业营改增对企业税负影响分析
  • 重新刻发票章需要什么资料
  • 没有产权的房子可以公证吗
  • 支票能够拿来付款吗
  • 开票含税和不含税哪个划算
  • mac big sur 新功能
  • php导出数据到excel
  • 苹果系统公测版
  • 场租费发票如何开
  • 前期差错更正怎么理解
  • 木星应该涂什么颜色
  • php imap函数
  • 十分=1
  • opencv如何使用
  • 企业收到海河工厂发运的乙材料,并验收入库
  • 报销差旅费凭证怎么做
  • thinkphp saveall
  • vue set up
  • python如何建立函数
  • 现金存入银行如何做账
  • 当master down掉后,pt-heartbeat不断重试会导致内存缓慢增长的原因及解决办法
  • MSSQLSERVER不同版本设置开启远程连接(sa配置)
  • 想买微波炉
  • 买的加油卡怎么充值
  • 商标权属于什么科目
  • 商场活动经费预算
  • 房地产公司退房款怎么做账
  • 公司怎么样能开发票
  • 银行存款账面余额是企业还是银行
  • 预付账款的账务处理过程
  • 餐费补贴是否计入成本
  • 印花税申报流程视频
  • 暂估材料发票长期不到
  • 企业注销前是不是资产必须处理完
  • 建安发票是增值税发票吗
  • 金税盘可以申请发票吗
  • 银行存款实际余额不足
  • 投入产出比的计算依据
  • 残保金是否为强制缴纳
  • windows mysql1045
  • win10怎么预览
  • windows英文版本
  • mac图形界面
  • win10系统怎么调整输入法
  • Win10 PC版 Build 14328上手体验视频评测
  • unity数学函数
  • 基于python的设计
  • jquery选择指定标签
  • node vm模块
  • 编写批处理运行程序
  • 遮罩层 css
  • koa与node.js开发实战
  • javascript学习指南
  • jquery detach
  • android drawpath
  • js实现组件功能
  • 报废车税务怎么处理
  • 什么叫税务备案
  • 新入职税务人员给总局的回信
  • 中欧班列补贴政策
  • 北京昌平区租房价格
  • 税控系统技术维护费每年都要交吗
  • 浙江网上税务局申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设