2

Les canaux de notification qui a introduit à partir d'Android O (API 26) version.I lire à ce sujet à partir des liens suivants:manière correcte de créer des canaux de notification Android O Api

questions:

  1. Si j'ai plusieurs numéros de notification, est-ce une bonne idée de créer des canaux de notification lorsque l'application démarre et de le conserver à ApplicationScope?

    public void addNotificationChannels(Context context) { 
    
        List<NotificationChannel> channels = new ArrayList<>(); 
        channels.add("channel_1"); 
        channels.add("channel_2"); 
        . 
        . 
        channels.add("channel_7"); 
    
        NotificationManager notificationManager = 
         (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
        notificationManager.createNotificationChannels(channels); 
    
    } 
    
  2. Que se passerait-il si je tente d'exécuter cette ligne new Notification.Builder(getApplicationContext(), PRIMARY_CHANNEL) avant d'ajouter des canaux au gestionnaire de notification

Répondre

0
  1. Idéalement, vous devez créer le canal en notification affichant à elle. Il est sûr d'appeler createNotificationChannel avec le même ID utilisé précédemment, il ne sera pas recréé.
  2. Votre application ne publiera pas cette notification. Le système peut afficher un toast d'avertissement indiquant que votre application n'est pas autorisée à publier cette notification.
+0

Je n'ai pas eu votre première réponse ici. Supposons que j'ai plusieurs canaux (A, B, C, D), je crée une notification de lecteur multimédia sous le canal B, donc c'est une bonne idée qui utilise 'notificationManager. createNotificationChannel (B) 'chaque fois que je remplis la notification de médias? Quel est l'avantage de faire cela au lieu d'une seule fois lorsque l'application se lance? –

+0

le système ignore simplement si le canal existe déjà. vous pouvez soit vérifier avant de créer le canal NotificationChannel notificationChannel = notificationManager.getNotificationChannel (canal); if (notificationChannel! = Null); . Si vous créez tous les canaux à l'avance, l'utilisateur peut également désactiver tous les canaux à l'avance. –

+0

Je suppose que vous n'avez pas eu ma vraie question ici. Je suis plus intéressé de connaître le modèle correct pour créer les canaux de notification. Créer une chaîne à chaque fois à partir de 100 endroits dans l'application n'est pas la bonne idée. –

0

Ce que je fais, étend the application class (ne pas oublier de mettre à jour le manifeste de l'application avec le nom de la classe) et créer les canaux de notification une fois dans la méthode onCreate. Cela garantit que les canaux de notification sont toujours créés lors de la création d'une notification. À mon humble avis, c'est un gaspillage de cycles CPU pour (essayer de) créer les canaux de notification pour chaque notification encore et encore.

En note: je note toujours la version de l'application de cette façon aussi, ce qui est très utile quand quelqu'un envoie un logcat.

+0

Je le fais en ce moment. Les créer dans la méthode 'onCreate()' de la classe MyApplication. Est-ce la bonne façon? –