安卓开发:服务的更多技巧--2.使用IntentService
来源:互联网 发布:卡通农场 挂机软件 编辑:程序博客网 时间:2024/05/22 05:00
服务中的代码都是默认运行在主线程当中的,如果直接在服务里去处理一些耗时的逻辑,就很容易出现ANR(Application Not Responding)的情况。Android专门提供了一个IntentService类,可以很好的解决问题。
新建一个MyIntentService类继承IntentService,代码如下:
public class MyIntentService extends IntentService { public MyIntentService() { super("MyIntentService"); // 调用父类的有参构造函数 } @Override protected void onHandleIntent(Intent intent) { // 打印当前线程的id Log.d("MyIntentService", "Thread id is :" + Thread.currentThread().getId()); } @Override public void onDestroy() { super.onDestroy(); Log.d("MyIntentService", "onDestroy executed"); }}
这里首先是要提供一个无参的构造函数,并且必须在其内部调用父类的有参构造函数。然后要在子类实现onHandleIntent()这个抽象方法,在这个方法中可以去处理一些具体的逻辑,而且不用担心ANR的问题,因为这个方法已经是在子线程中运行的。这里为了证实一下,我们在onHandleIntent()中打印了当前线程的id。另外根据IntentService的特性,这个服务在运行结束后会自动停止,我们又重写了onDestroy()方法,这里打印了一行日志,以证实服务是否停止。
运行结果如下:
注:文章采摘自《第一行代码》
0 0
- 安卓开发:服务的更多技巧--2.使用IntentService
- 安卓开发:服务的更多技巧--1.使用前台服务
- 安卓-IntentService使用
- 安卓中的特殊服务:IntentService
- 安卓学习笔记---IntentService的分析与使用
- IntentService的使用(异步服务)
- 安卓的IntentService的用法
- 使用后台服务 IntentService
- 安卓服务的使用
- Android官方开发文档Training系列课程中文版:后台服务之IntentService的使用
- 第一行代码总结:9.3服务的基本用法——服务的更多技巧(使用前台服务)
- Android开发中IntentService的使用
- Android多线程开发之IntentService的使用
- Android之服务(五)IntentService的使用
- Service的使用(二)启动服务与IntentService
- 第一行代码-9.5 服务的更多技巧
- 安卓Studio的gradle使用技巧
- 安卓studio的一些使用技巧
- iOS 网易新闻首页进化版Demo(MXSegmentedPager),自带平行头部拉伸
- 《深入理解Nginx》阅读与实践 使用upstream和subrequest访问第三方服务 no port in upstream
- 1010. Radix (25)
- json应用(2)
- HTML5+规范:Webview(管理应用窗口界面)
- 安卓开发:服务的更多技巧--2.使用IntentService
- 【笔记】PMBOK第二章组织影响和项目生命周期
- 解决As导入工程卡死的问题
- glob和regex
- 记一次最简单的exploitme
- 使用U盘在win7上安装ubuntu12.04.5
- SSH(Spring+SpringMVC+hibernate+Maven) 项目 使用jackson报转换异常
- 【笔记】PMBOK第3章项目管理过程
- QT学习之旅之1——Hello World