欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2023-10-09 11:50:15
在使用手机时,当有未接来电或者新短消息时,手机会给出响应的提示信息,这些提示信息通常会显示到手机屏幕的状态栏上。 android也提供了用于处理这些信息的类,它们是not...

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

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

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

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

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

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

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

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

国际惯例

运行结果:

Android中使用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" /> 

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