PreludeAggiornamento testo della notifica, non tutta la notifica
Sto cercando di aggiungere un cronometro sulla notifica. Il cronometro è un servizio. Ogni secondo questa linea si chiama (continua thread è un il booleano "correre", TimeString è la stringa elaborata che mostra il tempo):
NotificationChrono.updateNotification(getApplicationContext(), continueThread,
NOTIF_ID, timeString, "Chronometer", notificationManager);
Questa è la classe NotificationChrono:
public class NotificationChrono {
static public void updateNotification(Context context, boolean running,
int id, String title, String text,
NotificationManager notificationManager) {
Intent stopIntent = new Intent("com.corsalini.david.barcalc.STOP");
PendingIntent stopPendingIntent = PendingIntent.getBroadcast(context,
0, stopIntent, 0);
Intent startIntent = new Intent(
"com.corsalini.david.barcalc.STARTPAUSE");
PendingIntent startPendingIntent = PendingIntent.getBroadcast(context,
0, startIntent, 0);
NotificationCompat.Builder builder = new NotificationCompat.Builder(
context)
.setContentText(context.getString(R.string.notif_text))
.setContentTitle(title)
.setSmallIcon(R.drawable.ic_action_alarm_2)
.setAutoCancel(false)
.setOngoing(running)
.setOnlyAlertOnce(true)
.setContentIntent(
PendingIntent.getActivity(context, 10, new Intent(
context, FrontActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP), 0))
.addAction(
running ? R.drawable.ic_action_pause
: R.drawable.ic_action_play,
running ? context.getString(R.string.pause) : context
.getString(R.string.start), startPendingIntent)
.addAction(R.drawable.ic_action_stop,
context.getString(R.string.stop), stopPendingIntent);
notificationManager.notify(id, builder.build());
}
}
Problema
Ogni secondo la notifica viene cancellata e ricreata, visivamente significa che ogni secondo la notifica scompare e riappare nell'elenco di notifica.
Quello che vorrei è solo aggiornare il testo TITOLO, non ricreare la notifica interamente ogni secondo. È possibile?
Se la mia risposta ha fatto il trucco per te, per favore accetta come risposta :) – PieterAelse
Non ho usato la tua risposta, in realtà non ricordo esattamente quello che ho fatto (penso che il trucco fosse con setWhen). Ma leggendo la tua risposta, sembra una soluzione migliore, lo accetterò! –