写在http://hukai.me/blog/android-training-18-running-background-service-lesson-1/ 版权声明:本文博客原创文章,博客,未经同意,不得转载。
分类:
移动开发 时间:
2015-07-18 15:19:13
阅读次数:
128
Android IntentService vs Service众所周知,Android中的Service是用于后台服务的,当应用程序被挂到后台的时候,为了保证应用中某些功能仍然可以工作而引入了Service,比如播放音乐。针对service,官方文档有2点重要说明:
1. A Service is not a separate process. The Service object itself...
分类:
移动开发 时间:
2015-07-11 01:08:08
阅读次数:
171
之前介绍了Android Service与Thread的区别(点击查看Service与Thread区别),由于Service不是线程,它是在主线程中运行的,因此在Service中应该避免耗时操作,之前看到过很多帖子和代码都把耗时操作交给Service去处理,这样是不合理的。如果Service中有耗时...
分类:
其他好文 时间:
2015-06-29 23:43:36
阅读次数:
120
Android-IntentService
一 IntentService
主要是进行异步的服务:
1 新开了一个线程:HandelThread
2 在线程中发消息,然后接收
3 处理完成后,会清除线程,并且关掉服务
二 实现方法及特性
继承intentservice的onHandelService()即可
常用于一次性的服务,例如下载资源,发送消息等
Servi...
分类:
移动开发 时间:
2015-06-03 13:44:30
阅读次数:
136
如果你看到上一篇android耗时任务_HandlerThread中所提到的BackService类了的话,那么你肯定有一个冲动,就是把它封装起来方便使用。
别急,Android SDK早就已经为我们提供了和那个BackService基本相同的类——IntentService。因为IntentService和BackService基本相同,所以源码我就不贴了。
先来看一下一个简单的例子:
...
分类:
移动开发 时间:
2015-05-28 16:19:36
阅读次数:
184
原文网址:http://rainbow702.iteye.com/blog/1143286不管是何种Service,它默认都是在应用程序的主线程(亦即UI线程)中运行的。所以,如果你的Service将要运行非常耗时或者可能被阻塞的操作时,你的应用程序将会被挂起,甚至会出现ANR错误。为了避免这一问题...
分类:
移动开发 时间:
2015-05-26 18:42:17
阅读次数:
229
??
首先说一下Service本身存在的两个问题:
1.Service不会专门启动一条新的线程,Service与它所在应用位于同一个进程中。
2.Service也不是专门一条新的线程,所以不应该在Service中处理耗时的任务。
IntentService正好弥补了这两个不足:
IntentService可以处理异步请求的Service。
IntentService...
分类:
移动开发 时间:
2015-05-21 17:28:50
阅读次数:
182
这个面试的时候,相信是面试官最爱的问题之一。简单的来说,IntentService继承至Service,Service和Acitivity一样是依附于应用主进程的,它本身不是一个进程或者一个线程。一些耗时的操作可能会引起ANR的bug,(本文测试的时候,Service执行20秒没有报ANR),而IntentService,看它的源代码,onCreate()其实是创建了一个新的线程。...
分类:
移动开发 时间:
2015-05-17 20:22:07
阅读次数:
163
上文中说到了HandlerThread,这次我们继续来看一个IntentService。
IntentService是干啥的?
当启动一个Service时,他默认都是运行在主线程的,如果Service将要运行非常耗时或者可能被阻塞的操作时,应用程序将会被挂起,甚至会出现ANR错误。为了避免这一问题,应该在Service中重新启动一个新的线程来进行这些操作。但有一个更好的方法那就是用Intent...
分类:
移动开发 时间:
2015-05-15 15:33:21
阅读次数:
156
1.使用Intent进行异步通讯
在Service任务一旦完成后,就发送广播。开发者只需要实现一个BroadcastReceiver来监听响应既可。
Activity.startService启动intentService,intentService完成任务后sendBroadcast()发送广播,BroadcastReceiver.startActivity()通知Activity操作结果。...
分类:
其他好文 时间:
2015-05-13 21:55:36
阅读次数:
131