位置: 编程技术 - 正文

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

  • 资金账簿印花税减半政策
  • 车船税是什么意思图片
  • 个体工商户定期定额核定
  • 当月减少的固定资产当月停止折旧
  • 个人到税务局开发票要带什么东西
  • 劳务收入个税的计算方法
  • 出租固定资产取得的租金收入属于什么收入
  • 企业购买劳保用品会计处理
  • 快递费的进项税可以抵扣吗
  • 当月支付租金没有发票
  • 网上申领发票几天能寄送到?
  • 购入工程物资的账务处理
  • 企业每季度预缴增值税
  • 处于成熟期的企业其预算模式的特点是以什么为起点
  • 工资条上税基调整是啥意思
  • 控股公司如何抵押股权
  • 出口佣金比例
  • 交易性金融资产属于什么类
  • 屏幕乱跳广告解决办法
  • 车船税是什么险种
  • 个人所得税到年底能不能退回来
  • thinkphp 3.2.3 getshell
  • 暂估成本跨年怎么处理分录
  • windows dvd maker是什么
  • PHP:Memcached::deleteMulti()的用法_Memcached类
  • PHP:Memcached::__construct()的用法_Memcached类
  • 二手车交易税咋算
  • 跨境服务免征增值税需要一直备案吗
  • 环形链表入口节点
  • 公司缴纳的公积金什么时候到账
  • php中的include
  • 和平之城
  • 融资租入固定资产是什么意思
  • 建筑业的账务处理办法
  • 企业如何减少税收
  • 提取的坏账准备使用完后如何处理
  • 汽车购置税计算公式
  • 视同销售的行为
  • php自定义变量的方法是
  • 发票开具使用要求
  • iperf3命令和iperf2
  • java的基本
  • 收到事业单位分红怎么办
  • 个人应纳所得税计算公式
  • 一个例子解释唯物辩证法三大规律
  • 贴现需要什么手续
  • page_sql
  • linux数据库导入命令
  • mysql嵌套语句
  • 支付国外佣金的税率多少
  • 亏损企业所得税汇算清缴怎么做
  • 个人所得税的计算标准
  • 小型微利企业是小微企业吗
  • 开普通发票税率一般是多少?
  • 酒店客房收入会计分录
  • 提取盈余公积的会计科目
  • 计提应付款是什么意思
  • 预存话费发票能报销吗
  • 生产成本一般采用
  • 电子承兑汇票是什么
  • 可转债公允价值变动计入
  • 会计什么情况下不用继续教育
  • 登记生产成本和制造费用的明细账
  • 销售空调并提供安装如何征增值税
  • 当你感觉到你的win2000运行速度明显减慢
  • centos 安装chia
  • url是什么文件怎么打开
  • linux关闭系统
  • js咋用
  • 批处理重命名文件名
  • android之handler
  • jquery封装的函数
  • python爬虫京东
  • 税务局风险防控形成长远
  • 电子税务局申报表在哪里查询
  • 营转非的政策
  • 成都税务局网站首页
  • 个人医保缴费证明怎么打印
  • 受让企业与转让企业区别
  • 苏州国税电子税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设