位置: 编程技术 - 正文

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

  • 个人在境外取得收入纳税办法
  • 企业纳税过程
  • 汽车牌照费用标准
  • 留抵进项税额
  • 商业保险可以抵扣增值税吗
  • 建筑施工企业质量体系环境包括
  • 预付账款发票到货未到怎么做账
  • 公司名字开错了,认证过了怎么处理
  • 本月完工产品的会计分录
  • 材料存货的期末计量有何特点
  • 转让购入的设备税率
  • 诉讼管辖分为
  • 房屋使用权转让合法吗
  • 领用工程物资用于在建工程的进项税抵扣问题
  • 税务局开的专票可以抵扣吗
  • 工会经费怎么使用
  • 月末是指
  • 会计中的低值易耗品
  • 某企业存货跌价准备原材料科目贷方
  • 如何保护电子邮件账户不被黑客攻击
  • 电脑显示器模糊不清晰是什么原因
  • 短缺的材料算不算入账价值
  • 其他业务收入借贷方向
  • vue修改打包后静态资源路径的修改
  • 利用均匀水流导致的水位变化来显示时间
  • 个人出租有形动产怎么交税
  • 如何写php守护进程数据
  • 高新技术企业的申报条件包括以下哪些
  • 小规模纳税人进项票可以抵扣吗
  • 100行php代码实现加密端口转发
  • 冲账怎么写?
  • 原材料按计划成本核算例题
  • vue set up
  • 深圳杯2020c题
  • VUE-CLI/VUE-ROUTER
  • vue-bus
  • 个税专项附加扣除具体怎么操作
  • 织梦作坊的微博
  • 生产费用在完工产品和在产品之间的方法
  • 资本性支出与资本性支出(基本建设)的区别
  • 差旅费报销相关政策
  • 固定资产折旧计算表模板
  • 建筑企业的收入特点有哪些
  • 经营性应收项目的减少调增 为什么是减
  • 退税登记怎么办理
  • mysql密码忘了怎么办?
  • 增值税抵扣了,主要成本怎么算
  • 房地产企业实际发生的税金及附加
  • 企业外购的软件叫什么
  • 有限责任公司减资的条件
  • 母子公司间固定资产交换
  • 原材料 半成品
  • 多交的税费申请抵扣下期
  • 用友薪资管理怎么取消启用
  • 收到去年所得税退税款会计分录
  • 小规模纳税人怎么算税
  • 哪些福利费没有附加税
  • 清除sql表内容
  • SQLSERVER 中datetime 和 smalldatetime类型分析说明
  • 解析包错误怎么解除
  • ubuntu20.04命令
  • Linux 下 (RedHat 9.0) JDK,Tomcat,MySQL的安装
  • win10一年更新几次
  • centos配置yum
  • win8开机进不了桌面
  • vue条形码
  • 制作网站页面
  • Lesson01_05 HTML中的超链接
  • vim如何在文件中添加
  • python网络爬虫程序
  • pycharm新手使用教程
  • Python高手之路第3版PDF下载
  • Jquery针对tr td的一些实用操作方法(必看篇)
  • fiori开发
  • Python 常用代码库
  • 重庆办理4050社保需要什么材料
  • 天津国税电话
  • 北京 国税
  • 如何开具分包发票流程
  • 广东增值税发票勾选平台
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设