如何在Android中设置IntentService的优先级

我想知道是否有可能像使用Thread一样设置IntentService的优先级。 到目前为止我还没有find任何东西。

Solutions Collecting From Web of "如何在Android中设置IntentService的优先级"

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

请注意, IntentService是143行代码,包括空格和注释,所以你可以考虑把它克隆成具有优先级的代码。

您可以在您的意向服务的onHandleIntent()方法中设置Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND)

CommonsWare的解决scheme也适用。 不过这个比较简单。

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

有些人提出这个错误 。 也有补丁可用于此。

我改变了IntentService的优先级:“android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND);” 在IntentService类的构造函数中。

在我的情况下,它是从“零”(0)“Process.THREAD_PRIORITY_DEFAULT”更改为“Process.THREAD_PRIORITY_BACKGROUND”十(10),结果是可见的。