位置: 编程技术 - 正文

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

  • 存货报废进项是否要转出
  • 用库存现金支付职工医药费用69元会计人员编制的
  • 发票勾选后什么时候可以抵扣税
  • 电子记账凭证需要划线吗
  • 利润表营业外收入怎么取数
  • 企业存货占用资金的比例
  • 生产成本里面的工会经费
  • 公司对公银行账户可以注销吗
  • 企业店铺开发票可以要求补税点吗?
  • 进口关税专用缴款书怎么做分录
  • 小规模纳税人开专票税率是1%还是3%
  • 缴纳了土地增值税怎么退
  • 增值税减免税申报明细表怎么填写1%
  • 税盘被锁应该怎么办?
  • 收到个税手续费返还现金流量表
  • 协定存款分析及2018金融机构人民币存款基准利率表
  • 营业外支出怎么冲减
  • 用友软件报表公式
  • 申报缴纳印花税,取得银行缴税凭证
  • 个税在发工资的时候直接扣下来吗
  • 在win10中怎么从edge旧ie浏览器
  • win10电脑键盘灵敏度怎么调
  • 税收返还的账务处理
  • 进项税转出怎么填报表
  • 折旧可以计入主体成本吗
  • 关于工程材料的质量控制说法正确的是
  • 软件测试费计入什么科目
  • 暂估成本会计分录
  • windows不能打开exe文件
  • 布鲁克斯的故事
  • php模拟get请求
  • 集团与子公司资产的关系
  • 摇树的英文是什么
  • 运动目标检测算法
  • 盈余公积转增资本的最高限额
  • 【角色扮演】
  • html渐变色背景
  • pytorch自定义网络层
  • 充值款如何领取红包
  • autoreconf -ivf
  • 现金和现金等价物包括哪些
  • 金税盘中的发票修复是什么意思
  • 贷款利息发票可以随便开吗
  • 企业所得税申报表在哪里打印
  • 企业收到银行未收到怎么做账
  • 农机融资租赁公司联系方式
  • 销售不动产差额征税可以开专票吗
  • 土地补偿款会议纪要
  • 法人给对公账户转账
  • 建筑企业结转成本依据准则
  • access日期时间格式怎么修改
  • mysql怎么防止sql注入
  • mysqlreport显示Com_中change_db占用比例高的问题的解决方法
  • 企业报税流程是什么样的
  • 递延收益为什么属于负债
  • 个人所得税的征收
  • 个贷系统平账专户a户为啥扣钱
  • 企业代扣代缴个税
  • 二手车如何计提折旧费
  • 定额发票是否可以盖公章
  • 营业外支出科目核算的内容
  • 协作费用
  • 新买固定资产怎么记账
  • 管道固定装置
  • 购销合同交的印花税税率
  • 费用包含但不限于
  • 普通发票作废如何恢复
  • win2003无法启动
  • win7系统自带的截屏工具怎么打开
  • 怎么查看opengl版本
  • python3 生成器
  • unity中time.time
  • angularjs内置了很多有用的服务
  • nodejs实战
  • 在Linux下用scp复制文件无需输入密码的技巧
  • 高通芯片基于arm吗
  • javascript教程 csdn
  • Python中list初始化方法示例
  • python中的整数
  • 苏州税务中心
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设