Como ocultar o Painel de Notificação depois de enviar um PendingIntent para Serviço em uma notificação
Todos
Eu escrevo um serviço para atualizar o estado do sistema, e eu uso startForeground para colocar o serviço em primeiro plano, também adicionando uma notificação para ele. Na notificação, eu uso o remoteView para ter três imagens com três OnClickPendingIntent. Um deles está enviando de volta ao serviço e faz os códigos de atualização de notificação.
código para criação de notificação:
Intent intentApp = new Intent(this,ScreenOffWidgetConfigure.class);
intentApp.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent piApp = PendingIntent.getActivity(this, 0, intentApp, 0);
Intent intentOnOff = new Intent(CV.SERVICE_INTENT_ACTION);
intentOnOff.putExtra(CV.SERVICEACTION, CV.SERVICEACTION_TOGGLE);
PendingIntent piOnOff = PendingIntent.getService(this, 0, intentOnOff, 0);
Intent intentScreenOff = new Intent(CV.SERVICE_INTENT_ACTION);
intentScreenOff.putExtra(CV.SERVICEACTION, CV.SERVICEACTION_SCREENOFF);
PendingIntent piScreenOff = PendingIntent.getService(this, 1, intentScreenOff, 0);
// setup remoteview
RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.layout_notification);
remoteViews.setOnClickPendingIntent(R.id.image_logo, piApp);
remoteViews.setOnClickPendingIntent(R.id.image_status, piOnOff);
remoteViews.setOnClickPendingIntent(R.id.image_screenoff, piScreenOff);
if(CV.getPrefChargingOn(this) && CV.isPlugged(this))
{
remoteViews.setImageViewResource(R.id.image_status,R.drawable.widget_charging_on);
}
else
{
if(CV.getPrefAutoOnoff(this))
remoteViews.setImageViewResource(R.id.image_status,R.drawable.widget_on);
else
remoteViews.setImageViewResource(R.id.image_status,R.drawable.widget_off);
}
// build the notification
Notification noti = new Notification.Builder(this)
.setContent(remoteViews)
.setSmallIcon(R.drawable.ic_launcher)
.setOngoing(true)
.build();
return noti;
código para atualização de notificação, após receber a intenção:
Notification notify = createNotification();
final NotificationManager notificationManager = (NotificationManager) getApplicationContext()
.getSystemService(getApplicationContext().NOTIFICATION_SERVICE);
notificationManager.notify(NOTIFICATION_ONGOING, notify);
Minha pergunta é: depois de chamar minha função de atualização, a imagem de notificação é realmente alterada; Contudo,o painel de notificações ainda está lá !! Não desaparece exatamente como deveria ser para o lançamento de atividades.
Existe um sinalizador que eu possa definir para notificação, pendingIntent ou quais chamadas de API eu posso usar depois de receber a intenção em serviço?