1

我正在网上阅读有关服务和线程的信息(如果它在 android 的同一个线程中运行,为什么要使用服务),我得出的结论是,一般而言,服务的优先级高于线程。

我有一个应用程序,它使用简单的线程通过静态类执行下载操作,并在 5 分钟内完成。但是当我按下主页按钮并在一段时间后再次打开应用程序时,执行速度变慢了,因为我按下了主页按钮。

我要问的是,如果我使用服务会更快,或者通过按下主页按钮,减慢应用程序或优先级与执行时间无关是正常的?

谢谢你。

4

1 回答 1

1

不,他们没有。服务不是执行上下文,它们根本没有优先级。我不确定你从哪里得到这个想法,但这就像说花生比排球具有更高的优先级。这没有任何意义。

现在,无论前台的应用程序如何,通常都会首先获得 CPU,但下载并不是 CPU 密集型操作。其网络密集。即使在后台运行,您也可以让 CPU 足够长的时间从套接字读取数据。

Service 的意义在于它提供了一个上下文,但它不依赖于任何 UI、应用程序的任何屏幕或您的应用程序在前台。它是您可以进行后台处理或处理多个活动所需的数据的地方。就是这样,它与线程或优先级无关。

于 2018-09-13T18:13:30.037 回答