对于android 3.0以下 的系统,使用Notification.Builder来创建通知;android3.0以上的系统,推荐使用NotificationCompat.Builder,当然也能使用Notification.Builder,这个NotificationCompat在v4包中。不推荐直接使用Notification来创建通知。

首先要获取NotificationManager:(这个无论什么版本的系统都是需要的)

NotificationManager nm = (NotificationManager)mContext.getSystemService(NOTIFICATION_SERVICE);

接下来就是创建一个通知

3.0以上系统写法:

NotificationCompat.Builder mBuilder;

mBuilder = new NotificationCompat.Builder(mContext);

3.0以下的写法:

Notification.Builder mBuilder;

mBuilder = new Notification.Builder(mContext);

其实写法都是大同小异的

有几个常用的设置属性的方法:

setContentTitle(String title) //设置通知的标题

setContentText(String content) //设置通知的内容

setTicker(String ticker)//设置通知出现的的时候显示在顶部/底部通知栏的提示消息

setSmallIcon(int resIcon)//设置通知的图标(经测试,此项必选,否则通知将不显示

setWhen(System.currentTimeMillis())//设置发送通知的时间为当前时间

setContentIntent(Intent contentIntent)//设置点击通知的时候要发送的pendingIntent

setAutoCancel(boolean cancelable)//设置通知是否能被清除

setProgress(int max,int progress,boolean indeterminate)//如果设置这个属性的话通知中就会显示一个进度条,进度值为progress,最大值为max

设置完毕后调用build()即可创建通知,该方法将返回一个Notification的实例

通知创建出来后需要通过NotificationManager来发送:

notify(int uniqueId,Notification notification);//uniqueId是全app的一个唯一id值,如果要清除或者更新这个通知的话需要将uniqueId设置为相同的值

如果要清除这个通知,调用这个方法:

cancel(int uniqueId);

(2015年8月8日补充)

其实在平时的开发中,为了能兼容低版本的系统,同时又为了减少代码中对版本号的判断,可以考虑直接使用NotificationCompat.Builder,因为这个可以说是通用的