Notification消息提醒

本文介绍了一个用于Android平台的通知提醒类实现方法,可以根据不同情况改变通知的声音,并提供了如何关闭通知的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自己笔记用,可以直接拿来调用

在相关的界面根据不同的情况设置好不同的信息message,做好判断的情况下,最后调用方法

	NotificationHelper.setNotification(mContext, message);
一个可直接拿来用的消息提醒类,主要是不同情况提醒的音乐不同,闪灯和震动都是用的默认
public class NotificationHelper {
	public static void  setNotification(Context mContext,String str)
	{
		NotificationManager mNotificationManager = (NotificationManager) mContext.getSystemService(mContext.NOTIFICATION_SERVICE);  
		NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(mContext);
		Intent intent=MainActivity_.intent(mContext).get();
		intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
		PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, intent, 0);  
		mBuilder.setContentTitle("xxxxxxxx")//设置通知栏标题
		.setContentText(str) //设置通知栏显示内容
		.setContentIntent(pendingIntent) //设置通知栏点击意图
//		.setNumber(number) //设置通知集合的数量
		.setTicker("xxxxxxxx") //通知首次出现在通知栏,带上升动画效果的
		.setWhen(System.currentTimeMillis())//通知产生的时间,会在通知信息里显示,一般是系统获取到的时间
		.setPriority(Notification.PRIORITY_DEFAULT) //设置该通知优先级
//		.setAutoCancel(true)//设置这个标志当用户单击面板就可以让通知将自动取消  
		.setOngoing(false)//ture,设置他为一个正在进行的通知。他们通常是用来表示一个后台任务,用户积极参与(如播放音乐)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接)
		.setDefaults(Notification.DEFAULT_VIBRATE)//向通知添加声音、闪灯和振动效果的最简单、最一致的方式是使用当前的用户默认设置,使用defaults属性,可以组合
//		.setVibrate(new long[] {0,500})//设置震动方式,延迟0ms,然后振动500ms
//		.setLights(0xff0000ff, 300, 0)//设置闪光灯
//		.setSound(Uri.parse("android.resource://" + mContext.getPackageName() + "/" +R.raw.world))
		//Notification.DEFAULT_ALL  Notification.DEFAULT_SOUND 添加声音 // requires VIBRATE permission
		.setSmallIcon(R.drawable.xueyang);//设置通知小ICON
		
		Notification notification = mBuilder.build();
		notification.flags = Notification.FLAG_AUTO_CANCEL;
		notification.defaults |= Notification.DEFAULT_VIBRATE;
//		notification.defaults |= Notification.DEFAULT_SOUND;
		//不同状态下提醒声音不同
	        if(str.contains("AA")&&!str.contains("BB")){//只是AA有问题
			notification.sound = Uri.parse("android.resource://" + mContext.getPackageName() + "/" +R.raw.world);
		}else if(str.contains("AA")&&!str.contains("BB")){//只是BB有问题
			notification.sound = Uri.parse("android.resource://" + mContext.getPackageName() + "/" +R.raw.beep);
		}else if(str.contains("AA")&&str.contains("BB")){//都有问题
			notification.sound = Uri.parse("android.resource://" + mContext.getPackageName() + "/" +R.raw.seville);
		}
		
		mNotificationManager.notify(1, notification);
		
		
	}
	 
}

Notifaction的一些属性:

public static final int FLAG_SHOW_LIGHTS        = 0x00000001;//控制闪光   

 public static final int FLAG_ONGOING_EVENT      = 0x00000002;//将flag设置为这个属性那么通知就会像QQ一样一直在状态栏显示      

 public static final int FLAG_INSISTENT          = 0x00000004; //重复发出声音,直到用户响应此通知 
 public static final int FLAG_ONLY_ALERT_ONCE    = 0x00000008;//标记声音或者震动一次
 public static final int FLAG_AUTO_CANCEL        = 0x00000010; //在通知栏上点击此通知后自动清除此通知 
 public static final int FLAG_NO_CLEAR           = 0x00000020;//将flag设置为这个属性那么通知栏的那个清楚按钮就不会出现
 public static final int FLAG_FOREGROUND_SERVICE = 0x00000040;//前台服务标记 

 public static final int FLAG_HIGH_PRIORITY = 0x00000080;


如何在一个当前界面关闭Notifaction提醒

NotificationManager manger = (NotificationManager)mContext.getSystemService(NOTIFICATION_SERVICE);
manger.cancel(1);//这里的int值是在上面mNotificationManager.notify(1, notification);设定的int值


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值