安卓通知栏通知是我们经常会接触到的,它可以提醒我们某些应用的最新推送消息,社交软件等应用的信息通知,还可以在通知栏上显示例如播放器等常驻的功能。
接下来我们通过代码创建一个通知:
//全局通知管理者,通过获取系统服务获取
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