初次使用的朋友注意了,notification.icon不能为空,必须设置一张图片,如果图片尺寸不对,会被剪裁的很难看,大概22*22比较合适。状态栏的高度一般是25.
1.notifmanager.notify(id,notification); 这个id在同一个包里如果相同的话,后续的通知会直接覆盖前面的。如果tickerText相同也不会显示tickerText。
2.notification的构造方法中的when,是显示的时间,并不是发出通知的时间,发通知是即时的。
这个when会影响通知的显示顺序,从上到下按时间先后排序。
3.2.3的sdk,notifycation的PnedingIntent不能为空,否则报错或者直接不显示。(目前发现三星的9100不显示通知,但是没报错)。
4.PendingIntent的requestCode虽然说没有用,但其实可以用来区分PendingIntent对象的,不同的requestcode对应不同的PendingIntent,防止不同的PendingIntent混淆造成数据错乱。
5.pendingintent传值经常获取到的值是第一次的值或者null,这个最后一个参数选择有关系。
PendingIntent pendingIntent = PendingIntent.getActivity(this, id, intent, PendingIntent.FLAG_UPDATE_CURRENT);
注意:如果PendingIntent中intent的action不同,需要设置不同的id,否则数据会混淆。
6.使用文字通知时文本过长的处理
android:maxLines="2" //显示2行
android:ellipsize="end" //文本过长则在结尾显示省略号
android:textSize="12sp" //可以换其他字体大小
多线程下载并且使用通知栏来显示进度的同学注意了:
notifmanager.notify(id,notification);id必须保持区分
PnedingIntent的requestCode这个id也必须保持区别,否则数据各种混乱。