Error:(38, 25) 错误: 找不到符号
符号: 方法 setLatestEventInfo(MyService,String,String,PendingIntent)
位置: 类型为Notification的变量 notificationjavascript
解决:
若是编译的SDK版本在API23以上,就会出现这个问题,由于setLatestEventInfo方法在api23中被删掉了java
在api4以上的版本用notification能够用support v4中的NotificationCompat.Builder。android文档中给了一个例子:android
Notification noti = new Notification.Builder(mContext) .setContentTitle("New mail from " + sender.toString()) .setContentText(subject) .setSmallIcon(R.drawable.new_mail) .setLargeIcon(aBitmap) .build();
把上面"Notification.Builder"替换成"NotificationCompat.Builder"
alter+enter 把supportv4中的相关的库import进来
import android.support.v4.app.NotificationCompat;
因而代码编程了这样编程
Notification notification; if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) { notification = new NotificationCompat.Builder(this) .setSmallIcon(R.mipmap.ic_launcher)//必需要先setSmallIcon,不然会显示默认的通知,不显示自定义通知 .setTicker("显示于屏幕顶端状态栏的文本") .setContentTitle("this ics content title") .setContentText("this is content text") .setContentIntent(pendingIntent) .build(); } else { notification = new Notification.Builder(this) .setSmallIcon(R.mipmap.ic_launcher)//必需要先setSmallIcon,不然会显示默认的通知,不显示自定义通知 .setTicker("显示于屏幕顶端状态栏的文本") .setContentTitle("this is content title") .setContentText("this is content text") .setContentIntent(pendingIntent) .build(); } startForeground(2,notification);
注意:!!!上面这段代码是前台服务的notification,经过startForeground让服务变成前台服务并显示通知。这时必需要setSmallIcon,不然会显示默认的通知,不显示自定义通知!!!若是是正常的用NotificationManager显示通知则无所谓顺序