位置: 编程技术 - 正文

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

  • 城市维护建设税优惠政策
  • 近三年复合增长是什么意思
  • 房产公司结转收入条件
  • 减免税款的会计分录摘要
  • 税款所属期错了怎么更正
  • 累计增长量可以为负数吗
  • 购买信息技术服务费摘要怎么写
  • 所得税费用期初有余额吗
  • 个税申报收入额怎么填
  • 发票能加盖公章吗
  • 免交增值税是什么意思
  • 库存商品对外销售会计分录
  • 以前的货款用银行账户吗
  • 留抵税额注销时,会计分录
  • 估价入账是什么意思
  • 企业所得税税率2023年最新税率表
  • 利得一定会影响利润吗
  • 小规模开税票怎么开
  • 收到押金入什么会计科目
  • 网络平台收费标准
  • 什么企业需要纳税申报
  • 自建自用建筑物,其自建行为不是建筑业税目的征税范围
  • 上月计提租赁费下月扣怎么做账
  • 本月开了负数发票怎么开
  • php的类
  • centos只有lo
  • 系统之家装机可靠吗
  • PHP:mb_detect_encoding()的用法_mbstring函数
  • 其他业务收入怎么申报增值税
  • PHP选项代码
  • 进程process.acore已停止怎么办
  • dl是什么文件
  • 固定资产可以直接入账吗
  • vue foreach is not a function
  • 一般纳税人与小规模纳税人在报税方面的区别
  • 宝宝不肯坐推车怎么办
  • javaweb购物
  • thinkphp 分页
  • 低值易耗品五五摊销法怎么计算
  • selenium python 教程
  • 印花税的缴税对象是
  • 差旅费计入什么
  • 织梦使用手册
  • 取得发票没有加税怎么办
  • sql server提示不允许保存更改
  • 一般纳税人可以开3%的发票吗
  • 政府补助的内容
  • 存货报废进项税额需要转出吗
  • 应付账款不用付情况说明
  • 盖骑缝章的合同可以双面打印吗
  • 预付账款如何结账
  • 采购固定资产怎么做账
  • 网络服务费怎么入账
  • 红冲去年的成本怎么做账
  • 确认应付职工薪酬是什么意思
  • 固定资产开普票还是专票
  • 增值税普通发票可以抵扣吗
  • 税收滞纳金的问题有哪些
  • 收购发票使用范围及预警怎么写
  • 企业购买土地时土地款缴纳的耕地占用税入账
  • 记账凭证的分类及每类的具体含义是什么
  • 自动化收集落料
  • 电脑windows怎么查
  • windows7的所有操作都可以从( )
  • ubuntu查看内存占用最多的进程ID
  • 升级windows8
  • 双系统电脑怎么装系统
  • win7显示ipv4ipv6无网络访问权限
  • ie版本过低怎么升级win7
  • margin-left auto
  • win10文件类型选项
  • Unity3D之Transform参数
  • javascript怎么设置字体大小
  • linux常用命令及实例
  • unity 形变
  • python批量ping
  • 税务局稽查科有什么处理企业的办法
  • 不配合税务检查的法律责任
  • 西安车位过户需要多少费用
  • 法人注册怎么注册
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设