位置: 编程技术 - 正文

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

  • 资源税计入什么科目
  • 固定资产可以一次性摊销吗
  • 异地预缴怎么做账
  • 投资控股型公司什么意思
  • 小规模纳税人季报还是月报?
  • 酒店出租会议室增值税税率
  • 坏账损失的核算方法一般有两种
  • 土地违约金怎么写合同
  • 机票的差额发票可以报销吗
  • 应付账款借方余额在资产负债表中怎么列示
  • 往年预付账款错了,应如何调?
  • 2月的发票入在1月可以吗
  • 超市预付卡开票内容
  • 纳税人登记为一般纳税人后一律不得转为小规模纳税
  • 车改补贴是否计入工资总额
  • 查账征收的成本费用
  • 暂估发票未到年报怎么调
  • 发放活动奖金支出怎么入账
  • 我的初级备考经验--付出才有回报
  • 个人交社保可以交生育险吗
  • 本年应交增值税与销进项税额
  • 收到汽车报废补贴怎么做账?
  • 什么是会计凭证?会计凭证有哪些作用?
  • 票据质押出票如何操作
  • 收到银行承兑汇票后,如何取钱
  • 成本转入费用
  • 王者荣耀中张飞的台词
  • excel中怎么截取
  • 报销租房费用开发票
  • php数组实现
  • 社保缴费半年
  • mac应用程序图标
  • 主营业务收入含义
  • 融资租赁与经营租赁的联系
  • PHP:date_sunrise()的用法_Date Time函数
  • vue super
  • 产品报废进项税转出
  • 覆盖的盖
  • opencv开发项目
  • 异地提供建筑服务预缴企业所得税
  • 卷积神经网络有哪些
  • 浅谈人工智能时代财务会计向管理会计的转型
  • Chat GPT5如果问世会对世界产生什么影响?以及未来chat gpt 5会取代什么类型的工作。
  • XF86Setup命令 设置XFee86
  • 印花税和工会经费用不用计提
  • 总公司不是小微企业,分公司独立核算的
  • c语言strncat函数用法
  • mysql5.7.32安装
  • mysql数据库如何回滚
  • mongodb 教程
  • 发票章丢了会不会有事
  • 期初是什么
  • 公司有残疾人如何申报残保金
  • 建筑劳务公司一年赚多少钱
  • 年末结转步骤
  • 物业公司预收的物业费怎么做账
  • 以前年度损益调整账务处理分录
  • 固定资产的入账价值包括增值税吗?
  • 工会经费计入科目
  • 固定资产报废电费怎么算
  • 公司与公司之间的函怎么写
  • 发票抵扣联要放在凭证里面吗
  • 转账时转错账号怎么办
  • 单位车辆保险费
  • 应收账款和应付账款属于什么科目
  • 搭赠商品如何开票
  • Gene6 FTP在windows 2008上面破解后无法启动解决方法
  • hyper run
  • windows关机电源不断电
  • win7设置宽带拨号
  • win10系统wifi信号断断续续
  • 十大经典排序算法总结
  • async/await与promise(nodejs中的异步操作问题)
  • Python heapq使用详解及实例代码
  • c# datetime.date
  • js clearInterval()方法的定义和用法
  • jquery网页设计作业
  • 本期预缴税额怎么填
  • 皇家税务与海关署
  • 广告费加计扣除标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设