第十四篇:Android Notification通知的使用

通知的关键:NotificationManager、Notification以及PendingIntent。


通知(Notification)是Android 系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。发出一条通知后,手机最上方的状态栏中会显示一个通知的图标,下拉状态栏后可以看到通知的详细内容。


补充:通知三步骤:显示通知,点击通知进行跳转,点击后移除通知。


PendingIntent:
    PendingIntent 从名字上看起来就和Intent 有些类似,它们之间也确实存在着不少共同点。比如它们都可以去指明某一个“意图”,都可以用于启动活动、启动服务以及发送广播等。不同的是,Intent 更加倾向于去立即执行某个动作,而PendingIntent 更加倾向于在某个合适的时机去执行某个动作。所以,也可以把PendingIntent 简单地理解为延迟执行的Intent。




如:
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
//点击通知后,跳转到MainActivity
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), PendingIntent.FLAG_ONE_SHOT);
// 通过Notification.Builder来创建通知,注意API Level
// API16之后才支持
Notification notification = new Notification.Builder(this)
        .setSmallIcon(R.mipmap.ic_launcher)
        .setTicker("你有新的消息,请注意查收")
        .setContentTitle("我的人生")
        .setContentText("安卓通知的创建,学习课程")
        .setContentIntent(pendingIntent)
//.setNumber(1)
.build(); // 需要注意build()是在API


//        long[] vibrates = {0,1000,1000,1000};
//        notification.vibrate = vibrates;
//        Uri soundUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory()+"/KuwoMusic/music/一人我饮酒醉-MC天佑.mp3"));
//        notification.sound = soundUri;
//        notification.ledARGB = Color.GREEN;
//        notification.ledOnMS = 1000;
//        notification.ledOffMS = 1000;
//        notification.flags = Notification.FLAG_SHOW_LIGHTS;
notification.defaults = Notification.DEFAULT_ALL;
// level16及之后增加的,API11可以使用getNotificatin()来替代
notification.flags |= Notification.FLAG_AUTO_CANCEL; // FLAG_AUTO_CANCEL表明当通知被用户点击时,通知将被清除。
manager.notify(1, notification);// 步骤4:通过通知管理器来发起通知。如果id不同,则每click,在status哪里增加一个提示.


注意:1.通知使用权和允许通知不是一个概念,通知使用权是监听其他app发出的通知,允许通知是允许自己的应用发出通知。
2.@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)添加到方法头部,指使用改方法的手机android系统版本必须大于或等于JELLY_BEAN版本。
         






可能失效的原因:


外部原因:
1.真机上需要开启“允许通知”,让应用支持显示通知。 (一般只要在手机设置上允许进行通知即可,不需要代码控制).
2.手机调成了静音模式,则不会出现振动、声音.
3.部分手机上不支持开启闪光灯.如果支持需要在手机上设置授予应用开启闪光灯的权限。


内部原因:
缺少权限,振动需要声明权限,<uses-permission android:name="android.permission.VIBRATE"/>.
开启LED灯需要权限:<uses-permission android:name="android.permission.FLASHLIGHT"/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值