2011-09-29 69 views
0

here,了解android服务

它说服务不是一个单独的过程,它不是一个线程。 但是它怎么能“为应用程序告知系统关于它想要在后台执行的操作”?

如何在后台完成某些操作,而不需要进程或线程?

回答

1

服务或多或少是一个潜在的长期Android对象。换句话说,Android会为你实例化一个服务对象,并保持它为你活着,直到你告诉Android你完成了它。

服务通常启动后台线程来执行某些任务。一旦他们完成任务,他们会告诉Android服务可以停止。一旦你的服务停止,Android会调用onDestroy。既然Android知道你的服务已经完成,如果你的应用程序的其余部分没有运行,Android可能会决定销毁应用程序用于回收内存的进程。自从您的服务运行以来,它并没有这样做。

认为它这样(注意,有些东西抛弃了,因为不会打击你):

  1. 安卓创建你的服务的一个实例
  2. 的Android您的服务调用在onStart和你开始螺纹
  3. 执行返回到Android和它看到你的服务仍在运行,所以它不叫的onDestroy
  4. 经过一段时间在您的后台工作正在做
  5. 你称S对您的服务或您的服务topService是绑定
  6. Android现在看到的服务对象可以被摧毁,并收集
  7. 的Android您的服务调用的onDestroy和正在运行的服务
自己的内部列表中删除
0

如何在后台完成某些操作而不是进程或线程?

很简单,不是一个过程,但就是一些过程的一部分。这意味着很可能只有一个进程处理系统中的所有服务,类似于在家庭活动中处理小部件的方式。