位置: 编程技术 - 正文

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

  • 进出口环节增值税计税基础
  • 个体户要交什么税,怎样收
  • 金税三期收入额是多少
  • 合同印花税怎么贴
  • 建筑业老项目如何界定
  • 提完折旧的车卖掉划算吗
  • 发票预付款充值卡是否报销
  • 销售预付卡纳税税率
  • 零星小额交易要交税吗
  • 没有外币账户可以收外币吗
  • 财政补助结转会计处理
  • 个税里任职受雇从业类型
  • 固定资产清理属于什么科目
  • 公允价值变动损益和投资收益区别
  • 存货计提减值准备是什么原则
  • 收到客户银行按时到账
  • 收到供应商违约金 发票
  • 增值税专票销货清单模板
  • 2020退税时间超过了怎么办
  • 公司活动宣传稿怎么写
  • 金融保险定义
  • 农产品税率2020
  • 公司用上年多缴的社保
  • 上一年度多交年度所得税可以退税吗
  • 设备采购计入什么科目
  • 企业分红需要缴纳什么税
  • linux系统怎么关闭端口
  • 光驱弹不出来灯也不亮
  • 银行与银行之间转账会计摘要
  • 周转材料属于什么科目
  • windows7旗舰版最新版本
  • 将款项汇往外地采购专用账户会计分录
  • php数据导出到excel
  • 手工帐应交税费明细账
  • iis 7下安装laravel 5.4环境的方法教程
  • vuecli打包项目
  • 归一化的几种方法
  • uni-app原理
  • 过来人告诉你:女人最珍贵的三种东西,舍得给你说明爱你
  • javascriptj
  • 小微企业免税额怎么计算
  • 材料明细帐
  • 个税申报可以作废重新申报吗
  • 帝国cms到底好不好
  • 营业执照如何申请移出异常
  • 事业单位财政拨款收入会计分录
  • 企业每年需要做什么
  • 汇兑损益应计入
  • 本月发料凭证会计分录
  • 电子产品对外加工
  • 增值税进项税转出有哪些
  • 车间管理人员的福利费计入什么科目
  • 工程用油计入什么科目
  • 2021年财务新规定
  • 营业成本增加额公式
  • 广告制作需要交文化事业建设税
  • 空调销售又安装如何税收筹划
  • 结转资金和结余资金
  • win7系统安装软件闪退
  • mac怎么保存到桌面
  • centos安装教程详解
  • win8.1安装更新卡住
  • win10玩上古世纪闪退
  • 激素六项雌二醇30
  • linux ssh默认端口
  • cssimage
  • java物流管理系统
  • 一些实用性较高的东西
  • nodejs开发gui
  • js中颜色对应代码
  • 播放一个灵异电影
  • js中的隐式类型转换
  • git pull could not read from remote repository
  • shell脚本循环复制文件
  • unity获取鼠标点击的位置
  • document.write与writeln的输出内容区别说明
  • 如何设置python
  • 如何python
  • python dict.get()和dict['key']的区别详解
  • 江苏省无锡市国家电网客服电话是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设