位置: 编程技术 - 正文

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
  • 财务软件费用可以抵税吗
  • 经营者个人所得税申报
  • 对公的etc怎么绑定怎么充值
  • 销售货物代垫的运费发生的增值税
  • 企业支付给生产车间
  • 零余额帐户如何转账
  • 餐饮管理公司设哪些科目
  • 诉讼费可以入公司账吗
  • 出口退税总是差进项票怎么处理
  • 钢结构制作安装合同
  • 股份转让的溢价是什么意思
  • 年初预提费用
  • 员工休产假期间公司发工资吗
  • 对公账户发工资的利弊
  • 房地产开发企业资质证书
  • 外管证预缴增值税怎么抵扣
  • 企业接受投资者的土地使用权投资
  • 2021剑灵什么职业最强
  • 广告费用计入什么会计科目
  • 什么是摊余成本计量的金融资产
  • 限售股是好是坏
  • 收到员工罚款分录
  • 踩雷日记:Pytorch mmcv-full简易安装
  • 小规模纳税人工商年报网上怎么报
  • 外管证预缴税费怎么算
  • ip add命令是什么意思
  • 帝国cms真的很好用
  • 企业所得税核查报告
  • 报销差旅费属于什么现金流量项目
  • 进项税额转出可以为负数吗
  • python django做网页
  • 帝国cms破解授权
  • uni-app表单验证
  • mysql命令大全手册
  • 保洁公司的税率是多少
  • 小规模纳税人税率2023年是多少
  • 海关完税凭证抵税怎么算
  • sql2005数据库
  • 小企业会计准则和一般企业会计准则的区别
  • 兼职人员的个税怎么计算
  • 申报纳税的步骤
  • 应收票据周转率公式
  • 支付商业承兑汇票怎么做
  • 低值易耗品摊销借贷方向
  • 3%税率专票为什么不能抵扣
  • 小微企业增值税起征点是多少
  • 为什么留存收益不考虑筹资费用
  • 财务人员需要填报的报表有哪些
  • mysql理论知识
  • mysql数据库巡检脚本
  • win7 win8.1双系统安装教程
  • XP系统安装不了游戏
  • 安装 apt
  • 安装最新的powershell,了解新功能和改进
  • Ubuntu操作系统安全维护
  • 应用程序复制粘贴
  • mac之间传送帐号怎么传送
  • window 8
  • win10系统浏览器怎么换成ie
  • windows10 2021预览版
  • win8隐藏任务栏怎么恢复
  • linux在云计算中的使用
  • 最新版win10版本号
  • bat关闭bat
  • jquery父节点
  • windows清除远程登录记录
  • unity 循环列表
  • jqurey+Jscex打造游戏力度条
  • js中slice方法的作用
  • 安卓怎样从旧手机把联系人导入新手机
  • 河南的省直
  • 饲料的税收优惠政策
  • 税务上门核查要看什么
  • 机构改革后地方金融局怎么办
  • 国家税务总局在哪
  • 企业所得税按开票金额的多少计算税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设