gpt4 book ai didi

java - 在 android studio 中清除应用程序通知

转载 作者:行者123 更新时间:2023-12-01 19:44:58 25 4
gpt4 key购买 nike

我有一个发送通知的应用程序,但是当用户离开该应用程序时,通知仍然存在,以防他不单击它。因此,当用户注销或 session 用户为“null”时,通知将被自动删除。

我的代码:

@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
public void enviarNotificacao(){
Intent intent = new Intent(this, BottomNavigation.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.putExtra("totens", listaTotem);

int id = (int) (Math.random()*1000);
PendingIntent pi = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setTicker("Olá Marujo!!!");
builder.setContentTitle("Capitão Cupom");
builder.setContentText("Um novo tesouro próximo de você");
builder.setSmallIcon(R.drawable.logo);
builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.logo));
builder.setContentIntent(pi);
builder.setAutoCancel(true);

NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
notificationManager.notify(id, builder.build());

Notification n = builder.build();
n.vibrate = new long[]{150, 300, 150, 600};
notificationManager.notify(R.drawable.logo, n);

try {
Uri som = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone toque = RingtoneManager.getRingtone(this, som);
toque.play();
}catch (Exception e){

}
Sessao.instance.setSailor(sailor);
}

最佳答案

NotificantionManager.cancel(id) 取消具有该 id 的通知。 NoticiationManager.cancelAll() 取消来自此应用程序的所有通知。检测 session 何时结束显然是您需要构建的业务逻辑。当发生这种情况时,调用上述 2 个函数之一。

关于java - 在 android studio 中清除应用程序通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53697500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com