Android:notification通知

前言:

android为通知增加了一些特性——Channel,Channel可以帮助用户统一管理通知,开发者可以为不同类型的通知创建同一个通知Channel,所有使用同一个Channel的通知都具有相同的行为。
行为包括:

  • 重要性
  • 声音
  • 闪光灯
  • 振动
  • 在锁屏上显示
  • 替换免打扰模式

通知只有第一次运行时可以通过代码设置通知Channel的行为,用户之后可以通过Settings来更改通知Channel的行为,之后程序将无法通过代码来修改Channel

一:简介

Notification是显示在手机状态栏的通知——手机状态栏位于手机屏幕的最上方,那里一般是显示手机当前的网络状态,电池状态,时间等。
Notification代表全局效果的通知,一般通过NotificationManager服务来发送Notification。

Notification支持文字内容显示、震动、三色灯、铃声等多种提示形式

二:使用

1. 重要的参数

1). NotificationManager

NotificationManager : 是状态栏通知的管理类,负责发通知、清除通知等操作。
注意:NotificationManager 是一个系统Service,所以必须通过getSystemService(NOTIFICATION_SERVICE)方法来获取,方法如下。

NotificationManager mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

2). Notification

Notification为通知信息类,它里面对应了通知栏的各个属性,可以Notification.Builder类来创建

3). Notification.Builder

Notification.Builder提供了如下常用方法:

  • setDefaults():设置通知LED灯,音乐,振动等
  • setAutoCancel():设置点击通知后,状态栏自动删除通知
  • setContentTitle();设置通知标题
  • setContentText():设置通知内容
  • setSmalIcon():为通知设置图标
  • setLargeIcon():为通知设置大图标
  • setTick():设置通知在状态栏的提示文本
  • setContentIntent():设置点击通知后将要启动的程序组件对应的pendingIntent

4). Channel

用于统一管理通知的

2. 发送通知的步骤

  1. 调用getSystemService(NOTIFICATION_SERVICE)来获取系统服务NotificationChannel
  2. 创建NotificationChannel对象,并在NotificationManger上创建该Channel对象
  3. 通过构造器创建一个Notification.Builder设置通知的各种属性
  4. 为Notificaiton.Builder设置通知的各种参数
  5. 创建MessagingStyle和Message,通过Message设置消息内容,为Notification.Builder设置MessagingStyle后创建Notification
  6. 通过NotificationManager发送Notification

三:示例

public class FirstActivity extends Activity {

    @RequiresApi(api = Build.VERSION_CODES.O)
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
        //获取NotificationManager
        NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
        //设置Channel ID和Name以及 importance
        String channelId = "yesmola";
        String channelName = "myNoti";
        int channelImportance = NotificationManager.IMPORTANCE_HIGH;
        //构建Channel 通知通道
        NotificationChannel channel = new NotificationChannel(channelId, channelName, channelImportance);
        manager.createNotificationChannel(channel);

    }

    @RequiresApi(api = Build.VERSION_CODES.O)
    public void sendNoti(View view){
        //需要NotificationManager
        NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
        //可以过得Notification
        Notification notification = new Builder(this,"yesmola")
                .setContentTitle("这是我的通知")
                .setContentText("我的通知可真好看")
                .setWhen(System.currentTimeMillis())
                .setSmallIcon(R.drawable.search)
                .setAutoCancel(true)
                .setShowWhen(true)
                .setColor(Color.RED)   //这是用来设置小图标的颜色
                .build();
        manager.notify(1,notification);

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android常驻通知(Notification)是指在用户状态栏中一直显示的通知图标和文本内容,不会因为用户操作或应用进程被销毁而消失。常驻通知通常用于实时监测、后台服务、音乐播放等需要持续提醒用户的场景。 常驻通知的实现步骤如下: 1. 首先,需要创建一个Notification对象,包括通知图标、标题、内容等信息。 2. 然后,创建一个PendingIntent,用于定义用户点击通知后的操作,比如打开应用的某个Activity或执行某个Service。 3. 创建一个NotificationChannel(通知渠道),用于定义通知的重要程度,包括声音、震动等设置。 4. 将Notification对象与PendingIntent关联,并将其设置为常驻通知的优先级。 5. 最后,调用NotificationManager的notify方法,将通知显示在用户的状态栏上。 需要注意的是,常驻通知存在一些使用限制和最佳实践: 1. 用户可以通过设置中的通知管理来关闭或打开特定应用的常驻通知。 2. 常驻通知不适合用于广告或频繁推送的内容,以免打扰用户。 3. 为了避免误导用户,常驻通知的图标和文本内容应与应用的实际情况相符。 4. 如果需要更新通知的内容或操作,可以使用NotificationManager的notify方法进行更新,并保持通知的id不变。 总之,常驻通知Android提供的一个重要功能,可以实现持续提醒用户和后台监测的需求。但应用开发者需要注意使用场景和用户体验,遵循Android的最佳实践,以确保用户对常驻通知的接受和理解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值