该错误常常是因为程序没有正确配置Notification通知,或者Notification中的icon资源没有正确设置所导致的。
解决方式如下:
确保Notification配置正确,包括icon资源的设置;
在程序调用startForeground()方法之前,需先确保Notification被正确创建和设置。示例如下:
//创建Notification对象 Notification notification = new Notification.Builder(this) .setContentTitle("Foreground Service Notification") .setContentText("Content in Notification") .setSmallIcon(R.mipmap.ic_launcher) .build();
//将Notification设置到前台运行 startForeground(1, notification);
【补充说明】 上述示例中的R.mipmap.ic_launcher是一个图标资源,要求该资源必须存在于应用程序的res/mipmap目录下。同时,为了避免通知被误判为垃圾邮件,一般还要为Notification设置PendingIntent对象,点击通知时可以跳转到相应的活动页。