7
votes

Comment définir la priorité de l'utilité à Android

Je me demandais s'il est possible de définir la priorité d'un Intitifservice comme si vous le pouvez avec un fichier . Jusqu'à présent, je n'ai rien trouvé.


0 commentaires

4 Réponses :


6
votes

Le handlerthread que userservice n'est pas exposé au SDK. Il est défini sur processus.thread_priority_default comme priorité.

Notez que intitifservice est 143 lignes de code, y compris des espaces et des commentaires, vous pourriez donc envisager de le cloner pour en avoir une avec la priorité que vous recherchez.


1 commentaires

Merci Mark. C'est en fait ce que j'ai fini par faire.



-4
votes

J'ai changé la priorité de l'intise en utilisant: "android.os.process.setthrethreadPriority (android.os.process.thread_priority_background);" Dans le constructeur de la classe interservice.

Dans mon cas, il a été changé de: "Processus.thread_priority_default" qui est zéro (0) à "Processus.thread_priority_background" qui est dix (10) et le résultat était visible.


1 commentaires

Vous modifiez la priorité du fil qui crée l'intise, et non la priorité du fil était la vie du gestionnaire. Voir la réponse acceptée pour plus d'informations.



12
votes

Vous pouvez définir processus.setthreadPriority (processus.thread_priority_background) dans la OnThandleintent () méthode de votre service d'intention.

La solution par Commonsware fonctionne également. Celui-ci est plus simple, cependant.


0 commentaires

0
votes

Juste pour le rendre clair - Par défaut Intitifservice La priorité est par défaut- processus.thread_priority_default car il utilise handlerthread interne. Vous pouvez utiliser process.setthreadPriority (process.thread_priority_background) dans OntionLleIntent () ou quel que soit le site proposé par la réponse dans la réponse.

Certaines personnes ont soulevé cela comme bug . et il y a aussi patch disponible pour cela.


0 commentaires