Android通知栏notification简易创建

2016-09-02  本文已影响2229人  babybus_superdo

安卓通知栏通知是我们经常会接触到的,它可以提醒我们某些应用的最新推送消息,社交软件等应用的信息通知,还可以在通知栏上显示例如播放器等常驻的功能。
接下来我们通过代码创建一个通知:

//全局通知管理者,通过获取系统服务获取
NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//通知栏构造器,创建通知栏样式
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this); 
// 将来意图,用于点击通知之后的操作,内部的new intent()可用于跳转等操作
PendingIntent mPendingIntent = PendingIntent.getActivity(this, 1, new Intent(), Notification.FLAG_AUTO_CANCEL);

接下来设置通知样式:

//设置通知栏标题
mBuilder.setContentTitle("测试标题")
//设置通知栏显示内容
.setContentText("测试内容") 
//设置通知栏点击意图
.setContentIntent(mPendingIntent) 
//通知首次出现在通知栏,带上升动画效果的
.setTicker("测试通知来啦") 
//通知产生的时间,会在通知信息里显示,一般是系统获取到的时间
.setWhen(System.currentTimeMillis())
 //设置该通知优先级
.setPriority(Notification.PRIORITY_DEFAULT)
//设置这个标志当用户单击面板就可以让通知将自动取消  
.setAutoCancel(true)
//使用当前的用户默认设置
.setDefaults(Notification.DEFAULT_VIBRATE)
//设置通知小ICON(应用默认图标)
.setSmallIcon(R.drawable.ic_launcher);

最后在发送通知

mNotificationManager.notify(notifyId, mBuilder.build());  

简易的通知栏notification就创建完成。

补充资料:
而PendingIntent可以看作是对Intent的包装。PendingIntent主要持有的信息是它所包装的Intent和当前Application的Context。正由于PendingIntent中保存有当前Application的Context,使它赋予带他程序一种执行的Intent的能力,就算在执行时当前Application已经不存在了,也能通过存在PendingIntent里的Context照样执行Intent。

你可以通过点击notification跳转activity,网页等intent的一些操作,还可以通过service进行操作。
例如跳转网页:

//跳转url的intent
Intent it = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.babybus.com"));
//配置在pengdingintent中
PendingIntent pendingIntent = PendingIntent.getActivity(App.get().mainActivity,requestCode, it, NOTIFY_FLG);

通过service则可以:

Intent clickIntent = new Intent(App.get().mainActivity, ClickService.class);
clickIntent.putExtra("text","点击测试");
PendingIntent pendingIntent = PendingIntent.getService(App.get().mainActivity, requestCode, clickIntent, NOTIFY_FLG);

创建service,在AndroidManifest.xml中注册,在其中的onStartCommand中获取从intent中得到的参数。

@Override
public int onStartCommand(Intent intent, int flags, int startId) {      
    String text = intent.getStringExtra("text");   
    //通过该text进行操作
    return super.onStartCommand(intent, flags, startId);
}

参考资料:[http://blog.csdn.net/vipzjyno1/article/details/25248021/]

_本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 ) _
转载自【宝宝巴士SuperDo团队】原文链接: http://www.jianshu.com/p/5bbc2a73ba9c

上一篇下一篇

猜你喜欢

热点阅读