通知栏通知:Notification的实现
2015-12-27 11:33
309 查看
通知栏通知:Notification
通知栏内容:标题、图标、内容、时间、点击后响应
如何实现通知栏:
1、获取NotificationManaager是系统的常用服务要通过:
getSystemService(Context.n... s...)得到对象
通知管理类-----控制2、3作用
2、显示通知栏:notify(id,notification)
3、取消通知栏:canele(id)
4、构造Notification并设置显示内容
5、通知栏通知可以设置声音提示,指示灯,以及震动效果
构造Notification并设置显示内容:
----Builder类,实例一个Builder对象(导Notification包)
----用Builder对象set。。。标题、图标、内容、时间、点击意图、提示状态
Builder builder = new Notification.Builder(this);
builder.setSmallIcon(R.drawable.XXX);//设置图标
builder.setTicker("hello");//手机状态栏的提示
builder.setWhen(System.currentTimeMills());//设置时间
builder.setContentTitle("通知栏通知");//设置标题
builder.setContentText("我来自NotificationDemo");//设置通知内容
Intent intent = new Intent(this,MainActivity.class);
PendingIntent pintent = PendingIntent.getActivity(this,0,intent);
builder.setContentIntent(pintent );//点击后的意图
//builder.setDefaults(Notification.DEFAULT_SOUND);//设置提 示声音
//builder.setDefaults(Notification.DEFAULT_LIGHTS);//设置指示灯
//builder.setDefaults(Notification.DEFAULT_VIBRATE);//设置震动
builder.setDefaults(Notification.DEFAULT_ALL);//三种效果都有
Notification notifiction = builder.build();//4.1及以上
//builder.getNotification();//4.1以下
*注:
指示灯和震动的设置需要在AndroidManifest.xml中设置权限
users Permission
android.permission.FLASHLIGHT
android.permission.VIBRATE
看具体代码:
import android.app.Activity; import android.app.Notification; import android.app.Notification.Builder; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; public class MainActivity extends Activity implements OnClickListener{ NotificationManager manager;//通知控制类 int notification_ID; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); findViewById(R.id.btn_send).setOnClickListener(this); findViewById(R.id.btn_cancle).setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.btn_send: sendNotification(); break; case R.id.btn_cancle: manager.cancel(notification_ID); break; } } /** * 构造notification并发送到通知栏 */ private void sendNotification(){ Intent intent = new Intent(this,MainActivity.class); PendingIntent pintent = PendingIntent.getActivity(this, 0, intent, 0); Builder builder = new Notification.Builder(this); builder.setSmallIcon(R.drawable.ic_launcher);//设置图标 builder.setTicker("hello");//手机状态栏的提示; builder.setWhen(System.currentTimeMillis());//设置时间 builder.setContentTitle("通知栏通知");//设置标题 builder.setContentText("我来自NotificationDemo");//设置通知内容 builder.setContentIntent(pintent);//点击后的意图 // builder.setDefaults(Notification.DEFAULT_SOUND);//设置提示声音 // builder.setDefaults(Notification.DEFAULT_LIGHTS);//设置指示灯 // builder.setDefaults(Notification.DEFAULT_VIBRATE);//设置震动 builder.setDefaults(Notification.DEFAULT_ALL);//设置震动 Notification notification = builder.build();//4.1以上 //builder.getNotification(); manager.notify(notification_ID, notification); } }
相关文章推荐
- atitit.团队建设--要不要招技术储备人才的问题
- 课程总结报告
- 关于comparable与comparator的用法(即自定义集合框架用法 )
- special filter for iptables/netfilter tcpdump/tshark/wireshark
- 如何用MinGW 命令行编译链接c/c++
- ABP理论学习之数据过滤器
- ServerSAN解析(一):vVNX专业存储设备虚拟化
- ServerSAN解析(一):vVNX专业存储设备虚拟化
- 哈夫曼树的实现
- java中String类详解(收集)
- LeetCode-16-3Sum Closest(证明/KSum)-Medium
- VMware vSphere6.0 安装记录
- 广电总局发布智能电视操作系统 TVOS2.0,华为阿里等参与研发
- 【Java并发编程实战】—– AQS(三):阻塞、唤醒:LockSupport
- MySQL key分区(五)
- 代理模式
- 代理模式
- 代理模式
- 关于ListView,GridView的Adapter中的复用问题
- PhoneGap/Cordova学习笔记--2.第一个Cordova项目HelloWord