Service是从逻辑上表示一个用来执行"longer-running"的"后台"任务或功能的"application component"。那如果在activity里弄个thread不一样么,为啥要有service?还是说service的作用仅在于提高当前进程的寿命,使其不那么容易被OS干掉?求大神解答
------解决方案--------------------
service 没有可见的用户界面,但是可以在后台运行任意长的时间。
一个主要的例子就是从列表中播放音乐的媒体播放器。播放器程序可能会有一个或几个活动,这些活动可以让用户选择希望播放的音乐然后显示播放。但是音乐播放过程本身不会使用一个活动,因为用户希望在切出播放器界面做别的事情时音乐也能一直放下去。为了保持播放继续,播放器的活动可以启动一个在后台运行的service。然后即使启动这个service的活动退出,音乐播放服务也能继续运行。
你可以连接(connect)或者绑定(bind)到一个正在运行的service(如果这个服务还没运行的话就启动它)。当连接到service后,你可以通过service暴露出来的接口和这个service进行通信,对音乐播放服务来说,这个接口可能允许用户暂停,后退,停止,重新播放等操作。
service 运行在这个应用程序进程的主线程中。因此为了不阻塞其他的组件或者用户界面,service经常为那些耗时长的任务单独开一个线程(比如音乐播放)。
------解决方案--------------------
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=272385
你看一下
1). Thread:Thread 是程序执行的最小单元,它是分配CPU的基本单位。可以用 Thread 来执行一些异步的操作。
2). Service:Service 是android的一种机制,当它运行的时候如果是Local Service,那么对应的 Service 是运行在主进程的 main 线程上的。如:onCreate,onStart 这些函数在被系统调用的时候都是在主进程的 main 线程上运行的。如果是Remote Service,那么对应的 Service 则是运行在独立进程的 main 线程上。因此请不要把 Service 理解成线程,它跟线程半毛钱的关系都没有!
------解决方案--------------------
这些理论上的东西你要实际去操作练了才能积累起来,简单的计算当然thread可以
------解决方案--------------------
1. 在设计上 UI和服务分离,提高了代码内聚。
2. service可以作为独立进程运行,UI层可以进行IPC与service交互,比如获取GPS坐标信息。
3. service可以长期在后台运行,比如获取推送广告,最新新闻 并通知给UI层,你的app关闭后 仍然能收到推送的消息。
------解决方案--------------------
http://blog.csdn.net/g19920917/article/details/28389237
from 官网