问题描述
我想在我的应用中创建 3 个通知。他们将在一天中的不同时间出现。他们都会有不同的内容。我的代码如下所示:
public class NotificationHelper {
private Context mContext;
private static final String NOTIFICATION_CHANNEL_ID = "1001";
NotificationHelper(Context context){
mContext = context;
}
void createNotification(){
Intent intent = new Intent(mContext,NotificationActivity.class);
MyDBHandler myDBHandler = new MyDBHandler( mContext,null,3);
int id;
id = (int)Math.floor((Math.random() * 93) + 1);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent resultPendingIntent = PendingIntent.getActivity(mContext,intent,PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(mContext,NOTIFICATION_CHANNEL_ID);
mBuilder.setSmallIcon(R.drawable.ic_stat_name);
mBuilder.setContentTitle( myDBHandler.loadHandlerTitle(id));
mBuilder.setContentText(myDBHandler.loadHandlerText(id));
mBuilder.setStyle(new NotificationCompat.BigTextStyle());
mBuilder.setPriority(Notification.PRIORITY_MAX);
mBuilder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI);
mBuilder.setVibrate(new long[]{1000});
mBuilder.setContentIntent(resultPendingIntent);
mBuilder.setAutoCancel(false);
notificationmanager notificationmanager = (notificationmanager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
{
int importance = notificationmanager.IMPORTANCE_HIGH;
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID,"NOTIFICATION_CHANNEL_NAME",importance);
notificationChannel.enableLights(true);
mBuilder.setLights(Color.GREEN,500,500);
notificationChannel.enableVibration(true);
assert notificationmanager != null;
mBuilder.setChannelId(NOTIFICATION_CHANNEL_ID);
notificationmanager.createNotificationChannel(notificationChannel);
}
assert notificationmanager != null;
notificationmanager.notify(0,mBuilder.build());
}
}
public class NotificationActivity extends broadcastReceiver {
@Override
public void onReceive(Context context,Intent intent) {
NotificationHelper notificationHelper = new NotificationHelper(context);
notificationHelper.createNotification();
}
}
public class NotificationReceiver extends broadcastReceiver {
@Override
public void onReceive(Context context,Intent intent) {
NotificationHelper notificationHelper = new NotificationHelper(context);
notificationHelper.createNotification();
}
}
public void MyAlarmDailyAdvice() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY,9);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
if (calendar.getTime().compareto((new Date())) < 0)
{
calendar.add(Calendar.DAY_OF_MONTH,1);
}
Intent intent = new Intent(getApplicationContext(),NotificationReceiver.class);
PendingIntent pendingIntent = PendingIntent.getbroadcast(getApplicationContext(),PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
if(alarmManager != null){
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY,pendingIntent);
}
}
如何使用此代码创建多个通知?我可以在同一个通知渠道创建多个通知吗?我试图复制和更改名称、通知 ID、通知渠道等,但它不起作用。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)