我的应用会生成通知,但我没有显示为该通知设置的图标.相反,我得到一个白色方块.
我已经尝试调整图标的大小(尺寸720x720,66x66,44x44,22x22).奇怪的是,当使用较小尺寸时,白色方块较小.
我已经google了这个问题,以及生成通知的正确方法,从我读过的代码应该是正确的.可悲的是,事情并不像他们应该的那样.
我的手机是带有Android 5.1.1的Nexus 5.问题还出现在模拟器,带有Android 5.0.1的三星Galaxy s4和带有Android 5.0.1的摩托罗拉Moto G上(我借用了这两款,现在还没有)
接下来是通知代码和两个屏幕截图.如果您需要更多信息,请随时提出要求.
谢谢你们.
@SuppressLint("NewApi") private void sendNotification(String msg, String title, String link, Bundle bundle) {
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Intent resultIntent = new Intent(getApplicationContext(), MainActivity.class);
resultIntent.putExtras(bundle);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
resultIntent, Intent.FLAG_ACTIVITY_NEW_TASK);
Notification notification;
Uri sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.notificationsound);
notification = new Notification.Builder(this)
.setSmallIcon(R.drawable.lg_logo)
.setContentTitle(title)
.setStyle(new Notification.BigTextStyle().bigText(msg))
.setAutoCancel(true)
.setContentText(msg)
.setContentIntent(contentIntent)
.setSound(sound)
.build();
notificationManager.notify(0, notification);
}
Run Code Online (Sandbox Code Playgroud)

我从其他 SO 问题中知道的事情:
当我在内存中有 101 件物品的账单,每件物品价值 1.00004999999999999 时,我将所有价值为 1.000049999999999999 美元的 BigDecimals(或所有整数,如果我选择该表示法)相加,计算出的总数为 101.00509.9999 美元,即 1999999999 美元。
如果我在数据库中存储 4 个小数位,每个项目将被四舍五入并存储为 1.0000 美元,当我从数据库中提取它们并将它们相加时,我得到 101.0000 美元,四舍五入为 101.00 美元。
如果我将存储精度提高到十进制(19,5),我需要 1001 个项目而不是 101 个项目才能实现,但这仍然是可能的。它总是可能发生的事情,尽管一种可能的解决方案是将存储精度提高到如此之多,以至于发生这种错误的可能性比闪电击中计算机的可能性要小。
到目前为止,我的解决方案是从不使用 BigDecimal,而是始终使用 BigDecimal.setScale(4),它将其设置为 4 个小数位。你会建议一种不同的方法吗?
我知道行不通的事情:
其他注意事项: