阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 5128阅读
  • 2回复

3分钟学会使用notification

级别: 新人
发帖
1
云币
22
— 本帖被 移动推送 执行加亮操作(2016-03-15) —
3分钟学会使用notification
通知,又称statusbar notification,是安卓的系统服务之一。通过通知,app可以更好的和用户产生交互,激活用户的使用行为。



如何创建一个通知

你可以使用NotificationCompat.Builder去创建一个通知对象。NotificationCompat.Builder.build会构建并返回一个Notification 实例对象。使用NotificationManager.notify(Notification notification). 就可以将该通知在status bar上弹出。

在使用NotificationCompat.Builder时,有三个参数是必须设定的,不然弹不出窗口:
小图标  setSmallIcon()
通知标题 setContentTitle()
通知内容 setContentText()
创建一个最简单的通知:

-------------------------------------------------------------------------------------------------------------------------------------------------

NotificationCompat.Builder mBuilder =  new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.notification_icon)
        .setContentTitle("My notification")
        .setContentText("Hello World!");
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
//提交一个通知在状态栏中显示。
//如果拥有相同,mId的通知已经被提交而且没有被移除,该方法会用新的信息来替换之前的通知。
mNotificationManager.notify(mId, mBuilder.build());

--------------------------------------------------------------------------------------------------------------------------------------------------




处理用户的点击事件:

首先你需要一个PendingIntent,它的意思是,生成有一个intent,但是要在指定的情况下,再进行触发。在PendingIntent中,你可以放置你真正的intent和需要传递的参数,以便做后续的处理。
之后只需要使用NotificationCompat.Builder. setContentIntent()将你的pendingintent设置到相关的notification中去即可。

示例代码如下:

--------------------------------------------------------------------------------------------------------------------------------------------------

//Notification的Intent,即点击后转向的
ActivityIntent notificationIntent = new Intent(this, NewActivity.getClass());
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0,
        notificationIntent, 0);
mBuilder.setContentIntent(resultPendingIntent);

--------------------------------------------------------------------------------------------------------------------------------------------------




弹出通知的简单教程就到这里为止了 ,通知弹出本身,还是有很多可以深入关注的东西的,比如用户定义的view等。但由于通知是安卓系统服务,在不同安卓版本上,表现差异较大。所以如果要自己开发出一个好的通知,其实还是要花不少时间成本的。

发帖
11
云币
12
只看该作者 沙发  发表于: 2015-12-24
  
发帖
16
云币
36
只看该作者 板凳  发表于: 2015-12-24
好专业,涨知识了~
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: 阿里云官网域名是什么? 正确答案:www.aliyun.com
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)