gpt4 book ai didi

java - 来自另一个类(class)的调用通知

转载 作者:行者123 更新时间:2023-11-29 21:23:27 27 4
gpt4 key购买 nike

鉴于在我的应用程序中我需要很多通知,我有一个这样的类。

public class MyNotificationClass{

NotificationManager mNotificationManager;
NotificationCompat.Builder notificationBuilder;
Context context;

static final int NOTIFICA1 = 1;
static final int NOTIFICA2 = 2;

public MyNotificationClass(Context context) {
// TODO Auto-generated constructor stub
mNotificationManager = (NotificationManager) context.getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
notificationBuilder = new NotificationCompat.Builder(context);
}

public void mostra(int Id) {

switch(Id)
{
case NOTIFICA1:
notificationBuilder.setContentTitle("Text01");
notificationBuilder.setContentText("Text01");
mNotificationManager.notify(NOTIFICA1, notificationBuilder.build());
break;
case NOTIFICA2:
notificationBuilder.setContentTitle("Text02");
notificationBuilder.setContentText("Text02");
mNotificationManager.notify(NOTIFICA2, notificationBuilder.build());
break;
}
notificationBuilder.setWhen(System.currentTimeMillis());
notificationBuilder.setSmallIcon(R.drawable.ic_launcher);
notificationBuilder.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_LIGHTS );
}

}

如果我想打电话,比如通知号码1,我该怎么办?

最佳答案

build() 通知之前,您必须在 NotificationBuilder 上调用 setWhen()、setSmallIcon()、setDefaults()。将该代码移到开关 block 前面。

重要的调用是 setSmallIcon()。如果您不设置图标,则不会显示通知。

像这样尝试:

public void mostra(int Id) {

notificationBuilder.setWhen(System.currentTimeMillis());
notificationBuilder.setSmallIcon(R.drawable.ic_launcher);
notificationBuilder.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_LIGHTS );

switch(Id)
{
case NOTIFICA1:
notificationBuilder.setContentTitle("Text01");
notificationBuilder.setContentText("Text01");
mNotificationManager.notify(id, notificationBuilder.build());
break;
case NOTIFICA2:
notificationBuilder.setContentTitle("Text02");
notificationBuilder.setContentText("Text02");
mNotificationManager.notify(id, notificationBuilder.build());
break;
}
}

编辑:

在您的 Activity 中像这样调用此方法:

MyNotificationClass myNoti = new MyNotificationClass(this);
myNoti.mostra(MyNotificationClass.NOTIFICA1);

关于java - 来自另一个类(class)的调用通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20454269/

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