丰富你的程序,运用手机多媒体

本文详细介绍Android系统的通知功能,包括如何创建、管理和展示通知,以及如何使用PendingIntent实现延迟执行的操作。此外,还介绍了如何通过设置声音、振动和LED灯等高级特性来增强用户体验。

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

丰富你的程序,运用手机多媒体

使用通知

  • 通知(Notification)是Android系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些,而该应用程序又不在前台运行时,就可以借助通知来实现。

通知的基本用法

  • 首先需要一个NotificationManager来对通知进行管理,可以调用Context的getSystemService()方法获取到。getSystemService()接收的参数为Context.NOTIFICATION_SERVICE。

    NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
    
  • 创建一个Notification对象这个对象用于存储通知所需的各种信息

    • 第一个参数用于指定通知的图标
    • 第二个参数用于指定通知的 ticker 内容
    • 第三个参数用于指定通知被创建的时间,以毫秒为单位

      Notification notification = new Notification(R.drawable.icon,"This is ticker text"</span>,System.currentTimeMillis());
      
  • 调用Notification的setLatestEventInfo()方法可以给通知设置一个标准布局

    • 第一个参数是 Context
    • 第二个参数用于指定通知的标题内容,下拉系统状态栏就可以看到这部分内容
    • 第三个参数用于指定通知的正文内容
    • 第四个参数为PendingIntent
      notification.setLatesEventInfo(context,"This is content title","This is content text",pendingIntent);
  • 调用NotificationManager的notify()方法可以让通知显示出来

    manager.notify(1,notification);
  • NotificationManager的cancel()方法可以取消通知


  • #### PendingIntent
  • Intent更加倾向于去立即执行某个动作,而PendingIntent更加倾向于在某个合适的时机去执行某个动作。
  • PendingIntent简单的理解为延迟执行的Intent。
  • 获取PendingIntent的方法:getActivity()、getBroadcast()、getService()。
    • 第一个参数依旧是 Context
    • 第二个参数一般用不到,通常都是传入 0 即可
    • 第三个参数是一个 Intent 对象,我们可以通过这个对象构建出 PendingIntent 的“意图” 。
    • 第四个参数用于确定 PendingIntent 的行为,有FLAG_ONE_SHOT、 FLAG_NO_CREATE、 FLAG_CANCEL_CURRENT 和 FLAG_UPDATE_CURRENT 这四种值可选,

通知的高级技巧

  • sound属性可以在通知里播放一段音频

    Uri soundUri = Uri.fromFile(new File("/system/media/audio/ringtones/Basic_tone.ogg"));
    notification.sound = soundUri;
    
  • vibrate属性可以让手机进行振动

    long[] vibrate = {0,1000,1000,1000};
    notification.vibrate = vibrates;

  • 控制手机的LED灯显示

    • edARGB 用于控制 LED 灯的颜色
    • ledOnMS 用于指定 LED 灯亮起的时长,以毫秒为单位
    • ledOffMS用于指定 LED 灯暗去的时长,也是以毫秒为单位
    • flags 可用于指定通知的一些行为,其中就包括显示 LED 灯这一选项
    notification.ledARGB = Color.GREEN;
    notification.ledOnMS = 1000;
    notification.ledOffMS = 1000;
    notification.flags = Notification.FLAG_SHOW_LIGHTS;

播放多媒体文件

播放音频

播放音频的相关方法

播放视频

播放视频的相关方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值