Android多媒体应用——通知的使用(Notification)
来源:互联网 发布:windows 10 周年更新 编辑:程序博客网 时间:2024/06/05 18:08
通知是android的一大特色。
与其他的语言相比,比如java、c#,想要达到通知这样的效果,你需要自定义许多的东西,而且实现起来难度不低。
但在android中,系统已经提供好了组件,只需要你根据API做调用,就可以很轻易的实现这样的效果。
在android中,经过多个版本的更迭,通知的写法也在演变。
Notification的写法一:
这里,我们直接贴上代码,并在代码中注明解释:
public void noticeSend(){nManager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);Notification notification=new Notification(R.drawable.ic_launcher, "流星",System.currentTimeMillis());Intent intent=new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);PendingIntent piIntent=PendingIntent.getActivity(MainActivity.this, 0, intent, 0); //震动long [] vis={0,1000,1000,1000};notification.vibrate=vis;//颜色notification.ledARGB=Color.RED;notification.ledOnMS=1000;notification.ledOffMS=1000;notification.flags=Notification.FLAG_SHOW_LIGHTS;notification.setLatestEventInfo(MainActivity.this, "标题", "通知内容", piIntent);nManager.notify(1, notification);}这就是一个传统的notification的写法。
1、开始是获取NotificationManager的一个实例;
2、然后定义一个notification。该notification的三个参数分别为通知显示的图标、ticker(通知来时,一闪而过的提示)、通知的时间;
3、定义一个PenddingIntent,这个可以理解为是Intent的特殊的一种,是Intent的延迟实现。这个作为一个参数,作用是你点击通知时,意图做什么;这里表示,当你点击通知时,会跳转到辅助设置界面;
4、设置震动,震动是一个long型数组赋值,奇数位表示静止的时长,偶数位表示震动的时长。当你用这个时,你需要在AndroidManifest.xml设置震动权限;
5、颜色,这个设置是用来表示LED的显示。我们这里用醒目的红色来提示,ledOnMS表示开启LED等的时长,ledOffMS表示关闭LED的时长。这样就达到一闪一闪的LED提示效果;
6、最后,用setLatestEventInfo方法,将通知内容设置好;
7、用NotificationManager的实例,来启动这个通知。首个参数是通知的ID。
通过以上几个步骤,我们就完成了一个通知和一些属性的设置。可能你觉得麻烦,因为我们再里面设置了挺多的效果。
简化后,这样其实也是实现了通知:
public void noticeSend(){nManager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);Notification notification=new Notification(R.drawable.ic_launcher, "流星",System.currentTimeMillis());Intent intent=new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);PendingIntent piIntent=PendingIntent.getActivity(MainActivity.this, 0, intent, 0); notification.setLatestEventInfo(MainActivity.this, "标题", "通知内容", piIntent);nManager.notify(1, notification);}
设置的话,你可以添加一句,notification.defaults=Notification.DEFAULT_ALL.来设置,这就是默认设置。
当通知显示出来后,你会发现,你点击后通知居然还在,这和你平常见到的不一样啊。
这个时候,你可以用nManager.cancel(1),来取消这个通知。(或者用取消全部通知方法)
用以上的写法,可以实现通知,但在新版本的android上,已经不建议这么使用了。会有过时标签提醒,那还有另外的写法吗?Notication的写法二:
NotificationCompat.Builder builder=new NotificationCompat.Builder(this);builder.setAutoCancel(true).setTicker("测试通知来了!").setContentTitle("测试标题").setContentText("测试内容").setDefaults(Notification.DEFAULT_VIBRATE).setPriority(Notification.PRIORITY_DEFAULT).setContentIntent(getDefalutIntent(Notification.FLAG_AUTO_CANCEL)).setSmallIcon(R.drawable.ic_launcher); nManager.notify(1, builder.build());
以上,是现在主流的通知的写法,其实写法和设置上大体相同,但这种写法是高版本API建议的写法。
通知还有很多种的其他写法,比如大视图通知等,而且根据通知设定的不同,我们可以自定义很多个性化的东西再通知上。
这里难以一一介绍,就简单介绍到这里。
- Android多媒体应用——通知的使用(Notification)
- android通知的使用——Notification
- android通知(Notification)的使用
- android Notification(通知) 的使用
- Android通知Notification的使用
- ANDROID NOTIFICATION 通知的使用
- Notification——通知应用
- android的通知栏——Notification
- Android入门(43)——第五章 使用Notification实现状态通知栏的通知
- 读书笔记 多媒体(一)——通知notification
- Android——Notification通知
- Android 使用Notification(通知)
- android Notification通知使用
- Android中的通知—Notification
- Android中的通知—Notification
- Android中的通知—Notification .
- Android中的通知—Notification
- Android—Notification通知详解
- Mina是什么
- 图像编程-彩色图像灰度化
- 【随笔】聊一聊服务器的那些事儿
- leetcode 1 Two Sum
- SVN的Trunk、Branch和Tag(一)
- Android多媒体应用——通知的使用(Notification)
- oc中自定义结构体
- Github上如何取消fork别人的repository
- Essential Notes on Database(III) Normalization 范式 (I)
- Java开发者必备的六款工具
- 数据结构-Java实现-链表回顾
- iOS中对数据的存储的一种方法--归档
- Android开源之仿微信UI
- Android一键锁屏的实现