IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Services non destructibles


Sujet :

Android

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut Services non destructibles
    Bonjour,

    Quelqu'un peut-il m'indiquer ce qu'il faut faire pour qu'un service destiné à tourner en continu durant des mois sur un périphérique jamais mis en veille soit assuré de ne pas être détruit par l'OS même en cas de manque de ressources?

    Ou, dit autrement, comment affecter à un service la priorité maximale et le rendre non éligible à un kill par le système?

    Le périphérique est destiné à ne faire tourner que cet unique service. Je me doute qu'on ne risque pas d'être à court de ressources dans ces conditions, mais je dois garantir que le service ne sera jamais stoppé.

    Précisions: Le service est lancé au boot du périphérique, sans intervention de l'utilisateur, et ne dispose ni d'écran ni de clavier.

    Merci d'avance,
    Claude

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut
    Bon, comme d'habitude je me réponds à moi-même, LOL

    Il n'y a aucun moyen de modifier la priorité d'un service de façon directe.
    Par contre cette priorité dépend de l'application qui lance le service ainsi que du fait que le service est en arrière (par défaut) ou en avant-plan.

    La solution pour avoir la priorité maximale est de faire passer le service en avant-plan, comme une application en cours d'affichage, ce qui impose d'envoyer une notification à l'utilisateur, notification qui reste présente tant que le service tourne.

    Voici la façon de procéder en Kotlin, à mettre dans le onCreate du service:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
            //-----------------------------------------------------------------------------------------
            // Passer le service en avant-plan, afin d'éviter la destruction automatique et d'assurer
            // une priorité maximale au service.
            // Ceci impose l'envoi d'une notification à l'utilisateur, qui doit savoir qu'il y a un
            // service prioritaire en avant-plan.
            //-----------------------------------------------------------------------------------------
            // Création de l'Intent
            val notificationIntent = Intent(this, Launcher::class.java)
     
            // Création du PendingIntent
            val pendingIntent = PendingIntent.getActivity(this, 0,
                    notificationIntent, 0)
     
            // Création de la notification
            val notification = NotificationCompat.Builder(this, "0")
                    .setSmallIcon(R.raw.icone_notification)
                    .setContentTitle(getString(R.string.notificationTitle))
                    .setContentText(getString(R.string.notificationMessage))
                    .setContentIntent(pendingIntent).build()
     
            // On passe le service en avant-plan, l'OS se charge d'afficher la notification
            startForeground(1, notification)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/09/2009, 01h38
  2. service non supporté par chkconfig
    Par DevServlet dans le forum Administration système
    Réponses: 2
    Dernier message: 18/07/2008, 21h59
  3. [debutant] web service non bloquant
    Par leiwulang dans le forum Services Web
    Réponses: 3
    Dernier message: 04/03/2008, 16h11
  4. [Cookies] non destruction d'un cookie de session
    Par psychoBob dans le forum Langage
    Réponses: 13
    Dernier message: 16/06/2006, 13h20
  5. Ouverture non destructive Fichier
    Par xeon666 dans le forum C++
    Réponses: 3
    Dernier message: 03/03/2006, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo