7

我想知道是否可以IntentService像使用Thread. 到目前为止,我还没有发现任何东西。

4

4 回答 4

13

您可以Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND)onHandleIntent()您的意图服务的方法中进行设置。

CommonsWare 的解决方案也有效。不过,这个更简单。

于 2013-06-07T22:21:37.777 回答
6

HandlerThread使用的IntentService不暴露给 SDK。它被设置Process.THREAD_PRIORITY_DEFAULT为优先级。

请注意,这IntentService是 143 行代码,包括空格和注释,因此您可以考虑将其克隆为具有您寻求的优先级的代码。

于 2010-09-01T21:03:53.053 回答
0

只是为了说清楚-默认情况下IntentService优先级是默认的-Process.THREAD_PRIORITY_DEFAULT因为它在HandlerThread内部使用。您可以Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND)在 OnHandleIntent() 或 CommonsWare 在答案中建议的任何内容中使用。

有些人将此作为错误提出。并且还有可用的补丁。

于 2016-08-03T18:36:06.483 回答
-4

我使用以下方法更改了 IntentService 的优先级:“android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND);” 在 IntentService 类的构造函数中。

在我的例子中,它从“Process.THREAD_PRIORITY_DEFAULT”更改为“Process.THREAD_PRIORITY_DEFAULT”,它是零(0)到“Process.THREAD_PRIORITY_BACKGROUND”,它是十(10)并且结果是可见的。

于 2013-02-01T17:51:45.380 回答