位置: 编程技术 - 正文

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

  • 什么情况下个人资产会被冻结
  • 增值税小规模纳税人购进货物支付的增值税直接计入
  • 公司垫付生育津贴凭证
  • 金税四期查到了怎么办
  • 增值税专用发票抵扣期限
  • 交通费怎么抵扣进项税
  • 营业执照备案需要什么资料
  • 金税盘减免政策依据
  • 增值税负数发票可以作废吗?
  • 银行贷款受托支付后,钱怎么转回来
  • 企业所得税预缴计算方法
  • 公司注销时有大额应付款如何做账务处理合适?
  • 外经证提交一般要多久可以通过
  • 接受捐赠的固定资产进项税额可以抵扣吗
  • 安装工程什么时候计提成本费用
  • 公司没有收入算正常经营吗
  • 主营业务税金及附加包括什么
  • 生育津贴做账法会计准则
  • 增资缴纳印花税的计算公式?
  • 抵免税款收益算其他收益吗
  • 统借统还账务处理流程
  • 开发支出会计科目
  • 社保缴费基数是什么意思,退休能拿多少
  • 出口退税需要什么单据
  • 计提坏账准备的科目
  • 商业承兑汇票需要银行审核吗
  • 给股东分配股利
  • 火车票进项税在哪里认证
  • 怎么免费获取百度文库的付费文档
  • 若依前后端分离需要准备啥
  • 小规模纳税人无票收入免税吗
  • 没有收入该怎么办
  • 在Mac OS Yosemite 系统中如何发送超大邮件附件
  • 来料加工方式中,料件和加工后
  • 应交增值税的会计科目怎么做
  • php数组函数题目
  • 职工教育经费一定要提吗
  • 又十个超级有用的PHP代码片段
  • 企业发行股票的会计分录
  • 利息补偿金怎么算
  • 建筑企业跨区域还需预缴增值税吗
  • 损益类科目怎么结转
  • yolov3训练
  • 马赛马拉国家保护区内动物
  • 公司股东年底分红怎么做账
  • 应收账款的作用及其管理意义
  • 傅里叶级数狄利克雷判别法
  • 自营与代理
  • 营改增后租金收入交什么税
  • 企业购买黄金可以避税
  • 银行代发工资流程
  • sql查询结果分页
  • 公司的资金管理模式是什么?
  • 一般纳税人销售旧货税率
  • 生产车间的会计科目
  • 国际货运公司支付境外运费
  • 房地产开发企业会计制度
  • 电子发票显示错误信息是什么原因
  • 资产损失根据发票核算
  • 固定资产发票怎么处理
  • 会计账簿怎么填写模式
  • windows7休眠唤醒设置
  • Vista、XP、Windows7下非会员如何去除QQ2009的广告
  • 六款常见的墨水
  • solaris 11.4
  • bios界面如何进入
  • win7系统播放器在哪
  • win10系统版本20h2
  • xp系统没无线网络连接怎么办
  • g++编译debug
  • 如何用python进行数据处理
  • 全部删除文件快捷键
  • unity socket udp
  • nodejs邮件
  • unity每帧调用
  • js如何使用
  • js获取图片的宽高
  • 广东税务总局发票怎么开
  • 返利是否合法
  • 实体经济的行业有哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设