web-dev-qa-db-fra.com

Service d'arrière-plan pour Android oreo

Comment continuer le service d'arrière-plan dans Android Oreo sans afficher le point de notification? Je continue mon service d'arrière-plan en utilisant la notification mais je ne veux pas afficher de notification pour l'exécution du service.

13
faiyaz meghreji

Ce code a fonctionné pour moi. Vous vous assurez d'abord:

1- Définir le service dans le manifeste

2- Définir l'autorisation dans le manifeste

  <uses-permission Android:name="Android.permission.FOREGROUND_SERVICE" />

3- Assurez-vous d'avoir déjà démarré le service.

Votre service devrait avoir une notification. Vous devez faire attention à ce que votre notification ait un ChannelID!

cette page peut vous aider:

Comment créer une mise en page de notification personnalisée dans Android?

Android comment afficher la notification à l'écran

Collez maintenant le code suivant dans votre service

@Override
    public void onCreate() {
        super.onCreate();
            try {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    startForeground(" your Notification ID ", notification);
                }
            } catch (Exception e) {
                Log.e(" Error --->> ", e.getMessage());
            }
    }

après cela, ajoutez ce code:

@Override
public ComponentName startForegroundService(Intent service) {
    return super.startForegroundService(service);
}

et ça:

@Override
public void onDestroy() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        stopForeground(true);
    }
}
1
Masoud Siahkali