-2

当我必须使用IntentService

当我必须使用Service?

我不知道它们是用来做什么的。

4

1 回答 1

1

服务

这是所有服务的基类。扩展此类时,创建一个新线程来完成所有服务的工作很重要,因为默认情况下,服务使用应用程序的主线程,这可能会降低应用程序正在运行的任何活动的性能。

意向服务

这是 Service 的一个子类,它使用一个工作线程来处理所有的启动请求,一次一个。如果您不要求您的服务同时处理多个请求,这是最佳选择。您需要做的就是实现 onHandleIntent(),它接收每个启动请求的意图,以便您可以进行后台工作。

差异

服务类使用应用程序的主线程,而 IntentService 创建一个工作线程并使用该线程来运行服务。IntentService 创建一个队列,一次将一个意图传递给 onHandleIntent()。因此,实现多线程应该通过直接扩展Service类来实现。服务类需要使用 stopSelf() 手动停止。同时,当队列中没有意图时,IntentService 会自动停止。IntentService 实现了返回 null 的 onBind()。这意味着默认情况下不能绑定 IntentService。IntentService 实现了 onStartCommand(),它将 Intent 发送到队列和 onHandleIntent()。

于 2014-12-21T16:38:48.083 回答