我正在尝试在没有初始代码文本显示的情况下显示正在进行的通知。我可以通过在构造函数中将代码文本设置为 null 来使用旧样式的通知:
mNotification = new Notification(R.drawable.ic_stat_playing, null, System.currentTimeMillis());
但是,我注意到现在不推荐以这种方式实例化通知,而是建议使用 Notification.Builder。但是,即使我将代码文本设置为 null,我现在也无法在没有代码文本的情况下显示通知:
Notification.Builder builder = new Notification.Builder(this);
CharSequence contentText = "contentText here";
Intent launchIntent = new Intent(this, MainActivity.class);
// The PendingIntent to launch our activity if the user selects this
// notification
PendingIntent contentIntent = PendingIntent.getActivity(this, -1,
launchIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(contentIntent)
.setSmallIcon(R.drawable.ic_stat_playing)
.setLargeIcon(null)
.setTicker(null)
.setOnlyAlertOnce(true)
.setWhen(System.currentTimeMillis())
.setContentTitle(contentTitle)
.setOngoing(true)
.setContentText(contentText);
mNotification = builder.getNotification();
startForeground(NOTIFICATION_ID, mNotification);
是不是不能用新的 Notification.Builder 来关闭代码显示?是这样,这很不幸,因为我将无法从已弃用的代码中更新。
编辑 - 最终工作的代码:
mNotification = builder.getNotification();
mNotification.tickerView = null;
startForeground(NOTIFICATION_ID, mNotification);