IntentService使用

说实话,对于这个类在我实际工作中并没有用到过,通常也只是用了它的父类Service,通过官方文档可以看出类的层次结构:

而在今年的一次面试当中,有个面试官提起了它,所以虽说目前还没有真实在项目中用它,但是有必要先了解一下它的用法,在大脑中有一定的印象,以便将来真正能用到时则直接参考既可。

对于这个类的使用当然不用自己摸索,可以参考该博文:http://blog.csdn.net/hudashi/article/details/7986130

先依照官网的介绍有个大致的了解【来自银家博文】:

下面来把博文中说的例子给运行看下效果:

先声明服务MyIntentService:

public class MyIntentService extends IntentService {final static String TAG = "cexo";public MyIntentService() {super("com.example.layouttest.MyIntentService");Log.i(TAG, this + " is constructed");}@Overrideprotected void onHandleIntent(Intent arg0) {Log.i(TAG, "begin onHandleIntent() in " + this);try {Thread.sleep(5 * 1000);} catch (InterruptedException e) {e.printStackTrace();}Log.i(TAG, "end onHandleIntent() in " + this);}public void onDestroy() {super.onDestroy();Log.i(TAG, this + " is destroy");}
}

然后再主界面去调这个服务MainActivity:

public class MainActivity extends Activity implements OnClickListener {// viewsprivate Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button) findViewById(R.id.button);button.setOnClickListener(this);}@Overridepublic void onClick(View arg0) {Intent intent = new Intent(this, MyIntentService.class);startService(intent);// 连续发起了三次请求
        startService(intent);startService(intent);}}

下面来看下运行的效果:

从运行效果可以发现跟Service的一个很大的区别在于,同时发出多个请求之后,当最后一个请求被处理,则整个Service也退出了,关于它真正的使用场景,待在实际工作中用到了再来总结,目前先学会怎么用它~

 

总结:

在网上搜到了一个关于IntentService的一个特点,我觉得有几点写出了它的好处:

转载于:https://www.cnblogs.com/webor2006/p/4305715.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用 Barracuda 防火墙设置/保护 Azure 应用程序

如果某企业在 Windows Azure 上托管某个应用程序,该应用程序会在某个特定时间暴露到 Internet,以用于商业用途。公共 Internet 带来客户的同时也带来了攻击者。 Tim Omta 发表的新博客文章中介绍了如何使用 PaaS 应用程序之前的…

Git 简单命令行指令

为什么80%的码农都做不了架构师?>>> 这些git命令来自gitlab的简单提示,挺人性化,记录下。 Git 全局设置 git config --global user.name "yourname" git config --global user.email "yournamemail.com" 创…

第4章 字符串和格式化输入/输出

学习笔记——《C Primer Plus》 第4章 字符串和格式化输入/输出4.1 前导程序4.2 字符串简介4.2.1 char 类型数组和 null 字符4.2.2 使用字符串4.2.3 strlen() 函数4.3 常量和 C 预处理器4.3.1 符号常量1. 使用**符号常量**的好处:2. 创建符号常量4.3.2 const 限定符4.3.3 转换说…

ios之第一个程序Hello word, I am chenyu !

1、下载Xcode 个人建议网上下载Xcode,快些,特么再应用商店下载像日了狗一样,还要填写资料, 最后资料没有写好,无效字符。2、新建项目 下载好了Xcode,一步一步往下点就行,然后create 项目然后找m…

小博老师解析Java核心技术 ——JSwing绘图技术

2019独角兽企业重金招聘Python工程师标准>>> [引言] 我们在学习Java编程的时候,如果需要开发客户端窗体类型的程序,可以使用JDK中的awt和swing库。本文开始小博老师就继续为大家演示Java窗体编程中的绘图技术,今天主要讲解绘图技术…

.NET6之MiniAPI(十三):健康检查

程序员开发程序,是“生”的过程,运维人员负责日常运维,是“养”的过程,在养的过程,运维人员希望在第一时间了解程序的状况,健康检查,是最基础的手段。var builder WebApplication.CreateBuilde…

linux之用 grep -r 关键字 快速搜索在目录下面的含有关键字的文件

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程 1、快速搜索在目录下面的含有关键字的文件 我们采用下面命令cd directoriesgrep -r 关键字2、搜索结果

python 抓包基于pypcap

2019独角兽企业重金招聘Python工程师标准>>> 1、查询python和python-dev是否安装 dpkg-query -l python dpkg-query -l python-dev #没安装就先安装 sudo apt-get install python python-dev 2、安装flex和bison sudo apt-get install flex bison3、下载libpcap并安…

推荐一个基于Dapr的 Red Dog 的完整微服务应用程序

微服务尽管构建起来非常困难,但它们已成为一种越来越流行的架构模式。随着开发人员开始将他们现有的单体代码库迁移到微服务系统,他们花费大量时间来处理分布式应用程序带来的固有挑战,例如状态管理和服务调用。通过引入Dapr 通过以 http/gRP…

基于事件的 NIO 多线程服务器

2019独角兽企业重金招聘Python工程师标准>>> JDK1.4 的 NIO 有效解决了原有流式 IO 存在的线程开销的问题,在 NIO 中使用多线程,主要目的已不是为了应对每个客户端请求而分配独立的服务线程,而是通过多线程充分使用用多个 CPU 的处…

第6章 C控制语句:循环

学习笔记——《C Prime Plus》 第6章 C控制语句:循环6.1 再探 while 循环6.1.1 程序注释6.1.2 C风格读取循环6.2 while 语句6.2.1 终止 while 循环6.2.2 何时终止循环6.2.3 while:入口循环条件6.2.4 语法要点6.3 _Bool 类型6.4 不确定循环和计数循环6.5 …

openresty 前端开发进阶一之http后端

2019独角兽企业重金招聘Python工程师标准>>> 做前端开发,大多数情况下,都需要跟后端打交道,而最常见的方式则是通过http请求,进行通信。 在openresty中,通过http跟后端整合通信的方式又很多种,各…

第7章 C控制语句:分支和跳转

学习笔记——《C Prime Plus》 第7章 C控制语句:分支和跳转7.1 if 语句7.2 if else 语句7.2.1 介绍 getchar() 和 putchar()7.4 一个统计单词的程序7.1 if 语句 下程序读取一列数据,每个数据都表示每日的最低温度(℃)&#xff0c…

【Blog.Core开源】网关统一集成下游服务文档

一般看到公众号更新,就是大概率要开始上班了😂上回书咱们说到了《【Blog.Core开源】快速预览Admin界面效果》,这样我们就可以专注于后端开发,而且也能快速的实现效果的预览。那今天我们继续来往下走,说一说网关相关的内…

android4.3 截屏功能的尝试与失败分析

1.背景 上一篇讲了在源码中捕获到了android手机的截屏函数(同时按下电源键与音量减,详情http://blog.csdn.net/buptgshengod/article/details/19911909),经过一周的研究还是没有在手机上实现系统截屏功能,总结下尝试的…

numpy方法总结

2019独角兽企业重金招聘Python工程师标准>>> 一、数组方法 创建数组:arange()创建一维数组;array()创建一维或多维数组,其参数是类似于数组的对象,如列表等 反过来转换则可以使用numpy.ndarray.tolist()函数&#xff0…

阿里云离线数据仓库

阿里云离线数据仓库第1章 数据仓库概念第2章 项目需求及架构设计2.1 项目需求分析2.2 阿里云技术框架2.2.1 技术选型2.2.2 系统数据流程设计第3章 数据生成模块3.1 埋点数据基本格式3.2 事件日志数据3.2.1 商品列表页(loading)3.2.2 商品曝光&#xff08…

技术分享 | 混合云模式下SaaS端前端最佳实践

导读:集成开放平台采用的是混合云部署架构,包含两个大的组件,管理控制台和引擎。管理控制台是SaaS的,部署在公有云,按租户隔离。引擎部署在客户私有云。一套SaaS版的管理控制台如何适配不同客户的引擎,本文…

记一则Hadoop DataNode OOM故障,以及解决方案

一、故障症状最近公司一个集群跑大任务时,datanode日志报DataXceiveServer: Exiting due to:java.lang.OutOfMemoryError: unable to create new native thread异常,然后计算节点上的DataNode直接挂掉。DataNode异常日志截图如下:2014-03-06 …

阿里云实时数据仓库

阿里云实时数据仓库——学习笔记 课程目标 学习搭建一个实时数据仓库,掌握数据采集、存储、计算、输出、展示等整个业务流程。整个实时数据仓库系统是在阿里云架构上搭建,掌握并学会运用各个服务组件,及各个组件之间如何联动。前置知识要求&…