精通andoird4学习笔记-service

来源:互联网 发布:淘宝淘气值1000是多钱 编辑:程序博客网 时间:2024/06/05 08:57
ProAndroid4学习笔记-service
1.什么是Service
service不是一个独立的进程;、
   service对象自己并非运行在它自己的进程里面,除非另外特别说明,一般来说service运行在包含该service的app的那个进程里面。
service不是一个线程;
  service本身并没有另外创建一个线程去做事情。
所以,service本身其实很简单,提供两个特性:
  特性1:
    一种应用程序的机制,用于告诉系统,某些事情它希望在后台运行(即使用户没有直接和他通过ui交互)。这个特性和call to
    Context.StartService()有关,该调用请求系统为该service调度工作,直到service或者其他人停止它。
  特性2:
    一种应用程序的机制,暴露某些功能给其他应用程序。这个特性和call to Context.bindService()有关,该调用允许和该service建立
    一个长期连接,以便交互。
 
  当一个service组件被真的创建了以后,系统去做的事情就是实例化该组件并且调用onCreate(),其他合适的回调函数也在主线程中。
  service本身需要考虑如何实现这些回调函数以便有合适的行为,举例而言创建一个另外的线程以便在里面做事情。
  因为service本身很简单,你可以和它做或者简单或者复杂的交互,按照你的设计。
  对于调用方来说,你可以使用localservice-把它当作一个本地java对象做直接函数调用,也可以通过AIDL提供一个远程接口。