位置: 编程技术 - 正文

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

  • 业务招待费福利费怎么算超支
  • 所得税汇算清缴时间期限
  • 用友T6自定结转怎样设置
  • 小规模纳税人收入是含税还是不含税
  • 小规模纳税人零申报是每季度报吗
  • 员工福利开的专票怎么做分录
  • 减免增值税申报表
  • 增值税计入当期损益吗?
  • 保险中介的保险可以买吗
  • 个人独资企业是什么单位性质
  • 预计负债账务处理 固定资产
  • 应交税金的负数金额要怎么调整
  • 营改增各项业务销售额按照什么确定
  • 增值税减除后附加税计算方法
  • 增值税普通发票需要交税吗
  • 小规模纳税人增值税账务处理
  • 税控盘减免在哪里填报
  • 信用减值损失属于什么会计要素
  • 自制半成品生产成本
  • 企业收入不进公账怎样做账?
  • win10系统声音有杂音
  • win11卓越性能模式
  • 计提的跌价准备销售时怎么处理
  • 企业合并中或有负债确认后期调整的项目
  • 华为鸿蒙系统看PDF文件会不多次存
  • 公司法人向公司借款未还,公司可以倒闭吗
  • 委托贷款会计科目有哪些
  • win10系统修改密码
  • 小孩不爱吃蔬菜怎么办?
  • 简述php操作mysql数据库的基本步骤
  • php字段
  • 应付票据和应收票据的关系
  • 买保险公司的养老保险合适吗
  • 在途物资属于什么存货
  • 个人买车缴纳车船税吗
  • 利润表里的所得税费用怎么算出来的
  • 接口二次封装
  • python中函数的用法
  • 公允价值变动损益
  • 企业所得税的征税对象包括( )
  • 代收代缴水费可以加多少损耗
  • mysql查询表清单
  • 其它应付款的审计内容
  • 在计算应纳税所得额时
  • 什么叫政府补贴学位生
  • 装修公司财务报表图片
  • 我国流转税税制结构的现状及改进意见
  • 呆滞原材料变卖的会计处理
  • 当月预交增值税时所属期选了上期怎么办
  • 公司闲置房屋出租合法吗
  • 按最低标准买社保30年退休后每个月领多少钱
  • 转账支票转账需要带什么
  • 收到微信公众号反诈骗风险提示
  • 质量赔款能冲减收入么
  • 计算成本时应该考虑什么
  • 费用预算表怎么做
  • windows安装mysql5.7详细步骤
  • win8怎么扩展c盘
  • windows10右键菜单打开太慢
  • linux日志类型
  • dghm.exe是什么程序
  • centos 安装选择
  • win8显示屏亮度调节
  • win8键盘失灵怎么办
  • win10预览版21390
  • win7怎么设置工作组共享
  • unity connected games
  • opengl英文
  • javascript创建对象
  • 页面模板排序
  • 怎么重置mysql的密码
  • bootstrap的组件
  • 网页设计div css布局
  • nodejs获取post数据
  • node.js适用哪些场景
  • nodejs抓取网页内容
  • 简单又实用的
  • JavaScript基础教程
  • 广州市地方税务局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设