位置: 编程技术 - 正文

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

  • 房地产企业税率为5销售水泥怎么算
  • 发票在系统里作用大吗
  • 公司清理固定资产汽车怎么开票
  • 销项负数发票能用吗
  • 个体季度申报怎么写
  • 其他预算收入科目核算内容
  • 个人以房产进行交易
  • 红字发票是否要修改往期申报表
  • 抵扣发票未申报
  • 小规模增值税征收条件
  • 公司人事怎么办公积金提取流程?
  • 4s店试驾车转卖怎么开票
  • 出口退税的原则是什么
  • 发票首次核定
  • 半变动成本和延期成本的区别
  • 外协加工费会计分录
  • 劳务报酬和个人工资的区别
  • 跨月预缴如何做账
  • 2019一般纳税人和小规模纳税人的区别
  • 怎么查询个体还是公司
  • 商务平台建设
  • 坏账损失企业所得税
  • windows右键刷新总是卡住
  • win10取消登陆密码
  • 银行自动扣费用是什么
  • win7旗舰版分辨率调高了黑屏怎么办
  • php日期时间运算汇总
  • 开机自动进入安装模式
  • 出差的误餐费会计分录
  • 暂存款账务处理
  • 零售环节的金银首饰需征收增值税吗
  • 查补以前年度收入
  • 用约当产量法怎么计算约当总产量
  • vue实现导出
  • 无形资产摊销会影响利润吗
  • 房地产企业借款可以用未建成的房子设定浮动抵押吗?
  • 分公司注销,总公司账务处理
  • 注册资本和投资总额的关系
  • 如何用php做到页数显示
  • php 抓取别的网站的内容
  • 应收账款怎么做账
  • 微信小程序开发一个多少钱
  • 前端项目性能优势怎么写
  • 总结的拼音
  • php分页函数封装
  • 进项税额转出的进项税额如何处理
  • 珊瑚虫怎么变成珊瑚的
  • 招待费专票不可以抵扣
  • mongotemplate 分页查询
  • 房产税的纳税义务人是征税范围内房屋产权所有人
  • 去年一个月工资未计提直接计入成本,现在如何调整
  • 出资入股是什么意思
  • 劳务报酬所得是否含增值税
  • 印花税城建税教育费附加等其他税种的纳税申报
  • 公司投资者如何避免风险
  • 物业公司收物业费不开发票违法吗
  • 信用卡逾期滞纳金怎么收取
  • 应收账款有什么
  • 销售产品收到现款120元是什么制
  • 旅行社开的发票如何记账?
  • 公交车ic卡网上充值
  • 其他应付款坏账处理说明
  • 所得税滞纳金怎么算的
  • 红字发票怎样记账
  • mysql语句性能优化
  • sql server 获取今天的数据
  • linux oos
  • win7任务管理器是灰色的
  • iso镜像怎么装
  • 双系统计算机怎么开机
  • xp系统内存不能为read的解决方法
  • jquery代码实现鼠标点击
  • particular粒子怎么用
  • jquery json对象
  • unity资源库
  • android开发前景
  • 基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
  • python flask 路由
  • 增值税发票打印机怎么调整打印位置
  • 申报土地增值税需要什么资料
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设