通知栏时出现在手机顶部的消息提醒机制,用户打开之后会显示通知信息,还可以与用户交互,并处理用户选择事件。

一:创建

(1)得到NotificationManeger对象

// 得到NotificationManager对象 NotificationManager manager = (NotificationManager) this .getSystemService(Context.NOTIFICATION_SERVICE);

(2)实例化Notification对象

// 初始化Notification对象 Notification notification = new Notification();

(3)设置Notification对象属性

// 设置显示在手机最上边的状态栏的图标 notification.icon = R.drawable.ic_launcher; // 当当前的notification被放到状态栏上的那一刻,给出的提示 notification.tickerText = "注意";

(4)给出用户单击之后的响应动作

// 给出跳转信息 Intent intent = new Intent(this, Info.class); // 用户单击时触发跳转 PendingIntent pending = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);

(5)给出点击状态栏的图标出现的提示信息设置,参数:(Activity对象,标题信息,文本信息,PendingIntent对象)

notification.setLatestEventInfo(this, "内容提示:", "我就是一个测试文件", pending);

(6)使用NotificationManeger对象的notify(通知ID,Notification对象)方法发出通知。(通知ID为以后的取消通知做准备)

manager.notify(1, notification);

二:具体应用

功能:给出通知栏,用户单击之后触发弹出提示框的动作

◆主Activity

@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 得到NotificationManager对象 NotificationManager manager = (NotificationManager) this .getSystemService(Context.NOTIFICATION_SERVICE); // 初始化Notification对象 Notification notification = new Notification(); // 设置显示在手机最上边的状态栏的图标 notification.icon = R.drawable.ic_launcher; // 当当前的notification被放到状态栏上的那一刻,给出的提示 notification.tickerText = "注意"; // 添加声音提示 // notification.defaults = Notification.DEFAULT_SOUND; // audioStreamType的值必须AudioManager中的值,代表着响铃的模式 // notification.audioStreamType = // android.media.AudioManager.ADJUST_LOWER; // 给出跳转信息 Intent intent = new Intent(this, Info.class); // 用户单击时触发跳转 PendingIntent pending = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT); // 点击状态栏的图标出现的提示信息设置(Activity对象,标题信息,文本信息,PendingIntent对象) notification.setLatestEventInfo(this, "内容提示:", "我就是一个测试文件", pending); // 启动通知 manager.notify(1, notification);}

◆处理信息Activity

@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.info); //提示框 AlertDialog.Builder dia = (Builder) new AlertDialog.Builder(this); dia.setTitle("提示"); dia.setMessage("我是通知栏的提示信息"); dia.setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(Info.this, "您点击了确定按钮", Toast.LENGTH_LONG).show(); } }); dia.setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(Info.this, "您点击了取消按钮", Toast.LENGTH_LONG).show(); } }); dia.create(); dia.show(); //得到NotificationManager对象 NotificationManager manager = (NotificationManager) this .getSystemService(Context.NOTIFICATION_SERVICE); //取消通知,以免干扰用户 manager.cancel(1);}

◆结果

干什么都不容易啊。。喝咖啡与喝茶水的区别是什么?