转载请注明原创出处,谢谢!
- GitHub: @Ricco
最近项目中使用了Notification进行一些通知,遇到了一些小问题,踩了一些小坑,这里简单写一下!
Notification
先上代码
public class NotificationUtil {
public static void showNotification(Context context, String title, String text) {
Intent intent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new NotificationCompat.Builder(context)
.setContentTitle(title)
.setContentText(text)
.setStyle(new NotificationCompat.BigTextStyle().bigText(text))
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.mipmap.ic_notification)//纯alpha图层的图片
.setColor(Color.parseColor("#FF1878"))
// .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher))
.setContentIntent(pendingIntent)
.setAutoCancel(true)
.setDefaults(NotificationCompat.DEFAULT_ALL)
.setPriority(NotificationCompat.PRIORITY_MAX)
.build();
notificationManager.notify(1, notification);
}
}
使用上面的代码,已经足够完成大部分操作了。
值得注意的是几个有意思的参数
-
setSmallIcon
纯alpha图层的图片,一般为产品LOGO,纯白色,背景透明 -
setColor
设置的是SmallIcon的颜色 -
setLargeIcon
一般为本次通知内容的图片
(个人感觉,默认用的是应用的ic_launcher)不知道对不对,没测试过
这个一般是用来简单显示一张小图片,显示本次通知的大概内容,吸引用户点击跳转到页面 -
setSmallIcon
这个参数是必须要设置的,不可以省略,如果省略会GG!
如果用一张普通的图片,没有经过特殊的处理,会显示一个点,这个点的颜色就是我们设置的setColor
ps:Notification + BroadcastReceiver + AlarmManager 一般是常用的3件套!!!
网友评论