Service的初步理解

来源:互联网 发布:天龙八部游戏 知乎 编辑:程序博客网 时间:2024/05/21 09:01
Service的初步理解
经过几天的学习,感觉Service相对来说有点难学,目前通过视频和看android文档,对Service的重点总结一下:

    Service是一个应用程序组件,它能够在后台执行一些耗时较长的操作,并且不提供用户界面。服务能被其它应用程序的组件启动,即使用户切换到另外的应用时还能保持后台运行。此外,应用程序组件还能与服务绑定,并与服务进行交互,甚至能进行进程间通信。 比如,服务可以处理网络传输、音乐播放、执行文件I/O、或者与content provider进行交互,所有这些都是后台进行的。
    服务有以下两种基本类型:
started:调用startService()来启动服务,通常,started的服务执行单一的操作并且不会向调用者返回结果。比如,它可以通过网络下载或上传文件。当操作完成后,服务应该自行终止。
bound:调用bindService()绑定到服务上,bound服务提供了一个客户端/服务器接口,允许组件与服务进行交互、发送请求、获取结果,甚至可以利用进程间通信跨进程执行这些操作。绑定服务的生存期和被绑定的应用程序组件一致。 多个组件可以同时与一个服务绑定,不过所有的组件解除绑定后,服务也就会被销毁。

1、区别Service与Activity:
    1)Activity:
        Activity对应一个界面。
        应用退出,Activity对象就会死亡。
        应用再次进入,启动的Activity对象是重新创建的。
    2)Service
        不与任何界面关联。
        应用退出,Service仍在运行。
        应用再次进入,启动的Service还是前面运行的Service对象。
2 、区别Service与Thread
    1)Thread
        用来开启一个分线程的类,做一个长时间的工作。
        Thread对象的run()在分线程执行。
        应用退出:Thread不会停止。
        应用再次进入:不能再控制前面启动的Thread对象。
    2)Service
        用来在后台完成一个时间跨度比较大的工作的应用组件。
        Service的生命周期运行在主线程,如果Service想做持续时间比较长的工作,需要启动一个分线程(Thread)。
        应用退出:service不会停止。
        应用再次进入:可以与正在运行的Service进行通信。
3、Service的生命周期