服务的目的

时间:2016-02-08 19:09:44

标签: java android android-service

据我所知,Android服务只不过是一个包装器,分别是一个线程的管理器。在应用程序的主线程(也恰好管理UI调用)的上下文中运行时,无法执行任何冗长的操作。

如果Application类基本上涵盖相同的功能(https://stackoverflow.com/a/31490935

,有人可以了解服务的目的吗?

3 个答案:

答案 0 :(得分:2)

  

一个Android服务,它只不过是一个包装器,分别是一个线程的管理器。

没有。默认情况下,服务没有单独的线程。服务可以创建线程(通常也可以),一些特定的Service子类默认创建线程(例如IntentService)。

  

Application类基本上会涵盖相同的功能

Application类不包含相同的功能,只不过AnonymousCoward类。 Application实例也不会创建线程。任何类型的线程管理器(例如,ThreadPoolExecutor)可能由服务使用,但不替换服务。

引用myself

  

主要是,服务作为操作系统的标志存在,表明您正在积极地为用户提供价值,因此Android应该在系统RAM不足时终止其他进程 - 而不是您的进程。其次,服务为IPC提供了几个API:“命令”模式(IntentstartService())和“绑定”模式(bindService())。

应用程序中始终存在Application(启动进程时会创建实例)。它不会作为操作系统的任何标志来表示流程重要性,也不具有任何IPC功能。

答案 1 :(得分:0)

默认情况下,服务在主线程中运行,但您也可以在不同的线程中运行它。它也有自己的生命周期,它既可以在启动状态也可以在绑定状态下运行。 因此,如果服务在后台线程中运行,则服务对于执行长时间运行任务很有用。

服务不是线程的包装器。它有一个适当的生命周期方法。

答案 2 :(得分:-1)

根据我的理解,Android Service的好处是你可以运行一个与Application整体分开的线程。这样,即使Service未运行,您也可以继续Application的操作。