安卓Notification的几个常见难点

  1. 如何实现自定义的通知布局?
    重点: Remoteviews类

  2. 为何无法显示通知(关于安卓的一个默认设定)
    重点:setsmallIcon方法
    设置通知栏小图标,这个方法是必须的,否则无法成功创建合法的notification实例,切记!

  3. 如何显示完整的通知消息(较长的通知消息)
    重点:bigContentviews属性 或者 setStyle方法

具体代码和分析如下:

PendingIntent contentIntent = PendingIntent.getActivity(context,    NOTIFICATION_ID, intent, PendingIntent.FLAG_UPDATE_CURRENT);

NotificationManager mNotifM =(NotificationManager)context.getSystemService(
                             Context.NOTIFICATION_SERVICE);

RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.notification_layout);
//Remoteviews类是Notification视图使用的view类,构造方法的第一个参数是packagename,是必须的

remoteViews.setTextViewText(R.id.notification_message, title);
remoteViews.setTextViewText(R.id.notification_time, getNotifytime());
//自定义的view中的文本控件,getNotifytime 是我自定义的获取当前时间的字符串的方法,无关紧要

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);

//设置通知栏小图标,这个方法是必须的,否则无法成功创建合法的notification实例,切记!
mBuilder.setSmallIcon(R.drawable.app_ent_120x120)
        .setAutoCancel(true)//点击通知后自动取消显示当前的通知
        .setContentIntent(contentIntent);

if (!hasSound) {
   mBuilder.setDefaults(Notification.DEFAULT_SOUND);
}

Notification customNotification = mBuilder.build();

//将自定义的View作为显示通知的普通状态的view(即文本一般只显示1行或者2行)
customNotification.contentView = remoteViews;
if (Build.VERSION.SDK_INT > 15){
   customNotification.bigContentView = remoteViews;
}
//将自定义的View作为显示通知的大文本的view(能显示5行左右的消息)
//还有一种方法是在bulider执行方法
//setStyle(new NotificationCompat.BigTextStyle().bigText(title))
//设置将通知文本作为大文本显示(显示全部的信息),不过显示的风格是系统默认的

mNotifM.notify(NOTIFICATION_ID, customNotification);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值