Как установить приоритет IntentService в Android - PullRequest
7 голосов
/ 02 сентября 2010

Мне было интересно, возможно ли установить приоритет IntentService, как вы можете с помощью Thread.Пока ничего не нашел.

Ответы [ 4 ]

12 голосов
/ 08 июня 2013

Вы можете установить Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND) в методе onHandleIntent() вашего намеренного сервиса.

Решение CommonsWare также работает.Это проще, хотя.

6 голосов
/ 02 сентября 2010

HandlerThread, который используется IntentService, не предоставляется SDK. В качестве приоритета установлено значение Process.THREAD_PRIORITY_DEFAULT.

Обратите внимание, что IntentService - это 143 строки кода, включая пробелы и комментарии, поэтому вы можете просто скопировать его, чтобы получить тот, который вам нужен.

0 голосов
/ 03 августа 2016

Просто чтобы прояснить - по умолчанию IntentService приоритет по умолчанию - Process.THREAD_PRIORITY_DEFAULT, потому что он использует HandlerThread Внутренне.Вы можете использовать Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND) в OnHandleIntent () или любое другое, предложенное CommonsWare в ответе.

некоторые люди подняли это как bug .для этого есть также патч .

0 голосов
/ 01 февраля 2013

Я изменил приоритет IntentService, используя: "android.os.Process.setThreadPriority (android.os.Process.THREAD_PRIORITY_BACKGROUND);"в конструкторе класса IntentService.

В моем случае он был изменен с: «Process.THREAD_PRIORITY_DEFAULT», который равен нулю (0), на «Process.THREAD_PRIORITY_BACKGROUND», что равно десяти (10), и результат был виден.

...