位置: 编程技术 - 正文

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

  • 不征税收入有哪些类型
  • 资源税改革是什么意思
  • 固定资产累计折旧是什么科目
  • 差旅费住宿专票能否抵扣
  • 福利企业发放职工集资利息是不是要交个人所得税
  • 企业库存现金的限额是由( )核定的
  • 股权投资和债权投资的风险
  • 企业破产的费用的承担
  • 开票给子公司的利息收入怎么做账?
  • 招待住宿费计入什么科目
  • 持有至到期投资属于什么科目
  • 零报税报表怎么下载
  • 船票能开发票吗
  • 收取线路维护费合法吗
  • 购进建筑服务进项税额
  • 股权转让成本法和权益法
  • 坏账准备核销和转销的区别
  • 补缴地价款是什么意思
  • 工程储备的材料是存货吗
  • 住宿费算业务招待费还是差旅费?
  • 资产损失税前扣除
  • 增值税小规模纳税人减免增值税政策
  • 如何关闭windows10自动更新
  • 银行承兑汇票和银行汇票的区别
  • php基于反射机制实验报告
  • php实现简单数字变量
  • PHP If Else(elsefi) 语句
  • 个人所得税计提和发放分录
  • 手机短信是哪一年开始的
  • mac安装wine教程
  • 怎么查发票的真假鉴定
  • 税款滞纳金和罚款
  • 已冲销凭证是否可以作废
  • 普通增值税发票会计科目怎么写?
  • php实现数组排序,所有奇数在前偶数在后怎么排序
  • 应交税费已交税金是什么意思
  • jQuery dom操作
  • 语谱图生成
  • 利息收入做红字
  • 【超用心整理】Markdown常用语法介绍,看这一个就够了
  • ip6tables-restore命令 还原ip6tables表
  • http命令
  • 集团公司如何收管理费
  • 旅行社代订机票的发票可以抵税吗
  • 税率开错了会影响贷款吗
  • 企业未分配利润为负数什么原因
  • 固定资产盘点怎么做
  • 个体工商户还没开业也要报税吗
  • 资本公积含义
  • 给保安买大衣算贿赂吗
  • 暂估主营业务成本怎么冲销
  • 公司部门财务单独核算
  • 抵账的房子怎么办理房产证
  • 检测费用开票税率
  • 城镇土地使用税征收范围
  • 汇算清缴工资调减怎么做账
  • 一般纳税人企业所得税政策最新2023
  • 会计凭证传递的组织工作主要包括
  • mysql数据库高可用架构
  • centos7怎么安装图形化界面
  • 五笔输入法怎么切换中文
  • win10双击应用程序没反应
  • windows10预览版是什么
  • win7系统无法更改账户名称
  • shell脚本判断一个字符串是否为空
  • 清除电脑开机痕迹
  • perl 匹配不区分大小写
  • jquery内容
  • 应用框架的设计方法
  • c#程序例子
  • python django事务transaction源码分析详解
  • js插件推荐
  • unity3d入门视频教程
  • js class 私有方法
  • android 属性动画改变view大小
  • html5table
  • 台州土地成交
  • 济南代理报税
  • 上海嘉定南翔房子
  • 注册会计师人员名单
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设