Come aggiornare il text di notifica per un servizio in primo piano in Android?

Ho un setup di servizio in primo piano in Android. Vorrei aggiornare il text della notifica. Sto creando il servizio come mostrato di seguito.

Come posso aggiornare il text di notifica configurato in questo servizio in primo piano? Qual è la migliore pratica per aggiornare la notifica? Qualsiasi codice di esempio sarebbe apprezzato.

  • Servizio condiviso Android?
  • Android che riproduce musica in background
  • Il mio BroadcastReceiver non riceve l'intento BOOT_COMPLETED dopo i miei stivali N1
  • La window di dialogo Google Smart Lock per salvare le credenziali non viene visualizzata durante il test
  • Che cosa dovrebbe essere il colore dell'increspatura, del colorPrimary o del colorAccent? (Disegno materiale)
  • Imansible creare il gestore all'interno del thread. Come utilizzare Looper.prepare ()?
  • public class NotificationService extends Service { private static final int ONGOING_NOTIFICATION = 1; private Notification notification; @Override public void onCreate() { super.onCreate(); this.notification = new Notification(R.drawable.statusbar, getText(R.string.app_name), System.currentTimeMillis()); Intent notificationIntent = new Intent(this, AbList.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); this.notification.setLatestEventInfo(this, getText(R.string.app_name), "Update This Text", pendingIntent); startForeground(ONGOING_NOTIFICATION, this.notification); } 

    Sto creando il servizio nella mia attività principale come mostrato di seguito:

      // Start Notification Service Intent serviceIntent = new Intent(this, NotificationService.class); startService(serviceIntent); 

  • Qual è la differenza tra MediaPlayer e VideoView in Android?
  • Android: imansible riprodurre il video mp4
  • Android - ListViews all'interno di tableLayout
  • Come si esegue Android InputStream su MediaPlayer?
  • La trasmissione in streaming a VideoView è solo su Wifi quando si utilizzano telefoni Samsung
  • Android come get l'accesso alle risorse grezze che ho messo nella cartella di res?
  • 3 Solutions collect form web for “Come aggiornare il text di notifica per un servizio in primo piano in Android?”

    Penso che call nuovamente startForeground() con lo stesso ID univoco e una Notification con le nuove informazioni functionrebbero, anche se non ho provato questo scenario.

    Quando si desidera aggiornare un set di notifica da startForeground (), è sufficiente creare una nuova notifica e quindi utilizzare NotificationManager per notificarlo.

    Il punto chiave è quello di utilizzare lo stesso ID di notifica.

    Non ho provato lo scenario di call ripetutamente startForeground () per aggiornare la notifica, ma penso che utilizzando NotificationManager.notify sarebbe meglio.

    L'aggiornamento della notifica NON rimuoverà il servizio dallo stato di primo piano (questo può essere fatto solo chiamando stopForground);

    Esempio:

     private static final int NOTIF_ID=1; @Override public void onCreate (){ this.startForeground(); } private void startForeground() { startForeground(NOTIF_ID, getMyActivityNotification("")); } private Notification getMyActivityNotification(String text){ // The PendingIntent to launch our activity if the user selects // this notification CharSequence title = getText(R.string.title_activity); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, MyActivity.class), 0); return new Notification.Builder(this) .setContentTitle(title) .setContentText(text) .setSmallIcon(R.drawable.ic_launcher_b3) .setContentIntent(contentIntent).getNotification(); } /** * This is the method that can be called to update the Notification */ private void updateNotification() { String text = "Some text that will update the notification"; Notification notification = getMyActivityNotification(text); NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); mNotificationManager.notify(NOTIF_ID, notification); } 

    ecco il codice per farlo nel tuo servizio . Crea una nuova notifica, ma richiedi al responsabile di notifica di notificare lo stesso ID di notifica utilizzato in startForeground.

     Notification notify = createNotification(); final NotificationManager notificationManager = (NotificationManager) getApplicationContext() .getSystemService(getApplicationContext().NOTIFICATION_SERVICE); notificationManager.notify(ONGOING_NOTIFICATION, notify); 

    per i codici di esempio completi, puoi controllare qui:

    https://github.com/plateaukao/AutoScreenOnOff/blob/master/src/com/danielkao/autoscreenonoff/SensorMonitorService.java

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.