当前位置: 移动技术网 > IT编程>移动开发>Android > Android中使用Notification实现状态栏的通知

Android中使用Notification实现状态栏的通知

2019年07月24日  | 移动技术网IT编程  | 我要评论

德阳装修论坛,王恬子,证券投资分析重点

在使用手机时,当有未接来电或者新短消息时,手机会给出响应的提示信息,这些提示信息通常会显示到手机屏幕的状态栏上。

android也提供了用于处理这些信息的类,它们是notification和notificationmanager。其中,notification代表的是具有全局效果的通知,而notificationmanager则是用于发送notification通知的系统服务。

使用notification和notificationmanager类发送和显示通知也比较简单,大致可以分为以下四个步骤

(1)调用getsystemservice() 方法获取系统的notificationmanager服务

(2)创建一个notification对象,并为其设置各种属性

(3)为notification对象设置事件信息

(4)通过notificationmanager类的notify()方法发送notification通知

下面通过一个实例说明和使用notification在状态栏上显示通知

国际惯例

运行结果:

布局文件就不发了 线性垂直布局 两个按钮

mainactivity.class

package com.example.notification; 
import android.os.bundle; 
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.view.view; 
import android.view.view.onclicklistener; 
import android.widget.button; 
public class mainactivity extends activity implements onclicklistener{ 
 private notificationmanager manager; 
 private button button1; 
 private button button2; 
 private int notification_id; 
 @override 
 protected void oncreate(bundle savedinstancestate) { 
 super.oncreate(savedinstancestate); 
 setcontentview(r.layout.activity_main); 
 manager=(notificationmanager) getsystemservice(context.notification_service); 
 button1=(button) findviewbyid(r.id.button1); 
 button2=(button) findviewbyid(r.id.button2); 
 button1.setonclicklistener(this); 
 button2.setonclicklistener(this); 
 } 
 @override 
 public void onclick(view v) { 
 // todo auto-generated method stub 
 switch(v.getid()){ 
 case r.id.button1:{ 
 shownotification(); 
 break; 
 } 
 case r.id.button2:{ 
 manager.cancel(notification_id); 
 break; 
 } 
 } 
 } 
 private void shownotification() { 
 // todo auto-generated method stub 
 notification.builder builder=new builder(this); 
 builder.setsmallicon(r.drawable.ic_launcher);//设置图标 
 builder.setticker("通知来啦");//手机状态栏的提示 
 builder.setcontenttitle("我是通知标题");//设置标题 
 builder.setcontenttext("我是通知内容");//设置通知内容 
 builder.setwhen(system.currenttimemillis());//设置通知时间 
 intent intent=new intent(this,mainactivity.class); 
 pendingintent pendingintent=pendingintent.getactivity(this, 0, intent, 0); 
 builder.setcontentintent(pendingintent);//点击后的意图 
 builder.setdefaults(notification.default_lights);//设置指示灯 
 builder.setdefaults(notification.default_sound);//设置提示声音 
 builder.setdefaults(notification.default_vibrate);//设置震动 
 notification notification=builder.build();//4.1以上,以下要用getnotification() 
 manager.notify(notification_id, notification); 
 } 
} 

上面代码中设置的指示灯和震动,由于程序中要访问系统的指示灯和振动器 所以要在androidmanifest.xml中声明使用权限

<uses-permission android:name="android.permission.vibrate" /> 
<uses-permission android:name="android.permission.flashlight" /> 

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持移动技术网!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网