IntentService简介
2015-11-25 14:10
423 查看
IntentService:的实现与用法简介
IntentService是Service的子类,用来处理异步请求。客户端可以通过startService(Intent)方法传递请求给IntentService。IntentService在onCreate()函数中通过HandlerThread单独开启一个线程来处理所有Intent请求对象(通过startService方法
发送的任务),这样避免了在主线程中处理事务导致主线程阻塞。
IntentService对象在执行完请求工作之后会判断是否还有新的Intent请求到达,如果没有,自动停止Service,负责执行下一
个Intent请求所对应的任务。
IntentService在处理事务时采用的是handler 方式,创建一个ServiceHandler的内部Handler,并把它直接绑定到HandlerThread
所对应的子线程上。ServiceHandler把处理一个Intent所对应的事务都封装到onHandleIntent的抽象方法中。因此应用时直接实现
onHandleIntent方法即可。在方法里面根据传入的Intent不同进行相应的处理。
IntentService默认实现了Onbind()方法,返回值为null。
使用IntentService步骤:
1、写无参构造器,构造器中调用super("name");因为Service实例化是由系统完成的,而系统用的是无参构造器来实例化Service的。2、实现抽象方法onHandleIntent,并在里面根据Intent的不同进行处理。
IntentService的特点:
(1)、它创建了一个独立的工作线程来处理所有的通过onStartCommand()传递的任务。(2)、创建一个工作队列,来逐个发送Intent给onHandleIntent()。
(3)、不需要主动调用stopSelft()来结束服务。因为在所有的Intent被处理完后,系统会自动关闭服务。
(4)、默认实现onBind()方法,返回null
(5)、默认实现的onStartCommand()的目的是将Intent插入到工作队列中。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories