我正在创建一个下载通知并使用NotificationCompat的BigTextStyle,因为文本可能会很长,取决于你下载了多少。
我正在使用的代码行:
NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
builder.setSmallIcon(R.drawable.logo_24dp);
String notifiactionTitle = res.getString(R.string.notification__download_successful_title);
builder.setContentTitle(notifiactionTitle);
在这里我正在设置内容文本:
builder.setStyle(new NotificationCompat.BigTextStyle().bigText(notificationMessage));
结果是,如果我使用消息,则会显示通知 只要“下载的项目:xy,x,y,xz,x,zy”
但如果我只有一个项目则不会:“项目已下载:xy”。
我测试过我可以随机输入字符,它会起作用 因为信息足够长。
我已经通过添加
解决了这个问题builder.setContentText(notificationMessage);
在设置样式和bigtext之前。但我很好奇为什么需要 设置内容标题两次,因为文档的 BigTextStyle()。bigMethod清楚地说:
提供较长的文字,以较大的形式代替 内容文字显示。
我假设如果消息不够长,则不使用bigTextStyle 而是使用contentText。 但为什么不记录并明确说明?我错过了什么吗? 有人知道内部会发生什么吗?
谢谢!