分享好友 最新资讯首页 最新资讯分类 切换频道
Notification的发送与取消手机震动器「Notification的发送与取消」
2025-02-13 18:31

我们经常能在生活中收到各种通知,短信就是最明显的例子。。


关于android的通知我们通过一个小案例来简单实现以下。。


首先看xml代码,我放置了两个按钮,分别为取消和发送

 

然后看activity的处理

 


下面来谈谈notification,这个notification一般用在电话,短信,邮件,闹钟铃声,在手机的状态栏上就会出现一个小图标,提示用户处理这个快讯,这时手从上方滑动状态栏就可以展开并处理这个快讯。发现这个功能特别好用,所以我就根据我的理解来谈谈。摘自帮助文档 :  notification类表示一个持久的通知,将提交给用户使用NotificationManager。已添加的Notification.Builder,使其更容易构建通知。notification是一种让你的应用程序在没有开启情况下或在后台运行警示用户。它是看不见的程序组件(Broadcast Receiver,Service和不活跃的Activity)警示用户有需要注意的事件发生的最好途径。

    先来区分以下状态栏和状态条的区别

    1、状态条就是手机屏幕最上方的一个条形状的区域

          在状态条有好多信息量:比如usb连接图标,手机信号图标,电池电量图标,时间图标等等

    2、状态栏就是手从状态条滑下来的可以伸缩的view

          在状态栏中一般有两类(使用FLAG_标记

          (1)正在进行的程序

          (2)是通知事件

     大概来描述创建一个Notification传送的信息有

    1、一个状态条图标

    2、在拉伸的状态栏窗口中显示带有大标题,小标题,图标的信息,并且有处理该点击事件:比如调用该程序的入口类

    3、闪光,LED,或者震动

      快速创建一个Notification的步骤简单可以分为以下四步

      第一步:通过getSystemService)方法得到NotificationManager对象

      第二步:对Notification的一些属性进行设置比如:内容,图标,标题,相应notification的动作进行处理等等

      第三步:通过NotificationManager对象的notify)方法来执行一个notification的快讯

      第四步:通过NotificationManager对象的cancel)方法来取消一个notificatioin的快讯

     下面对Notification类中的一些常量,字段,方法简单介绍一下

     常量

        DEFAULT_ALL                  使用所有默认值,比如声音,震动,闪屏等等

        DEFAULT_LIGHTS            使用默认闪光提示

        DEFAULT_SOUNDS         使用默认提示声音

        DEFAULT_VIBRATE         使用默认手机震动

      【说明】:加入手机震动,一定要在manifest.xml中加入权限

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

        以上的效果常量可以叠加,即通过

                mNotifaction.defaults =DEFAULT_SOUND  |  DEFAULT_VIBRATE ; 

            或mNotifaction.defaults |=DEFAULT_SOUND   (最好在真机上测试,震动效果模拟器上没有)

        //设置flag位

        FLAG_AUTO_CANCEL          该通知能被状态栏的清除按钮给清除掉

        FLAG_NO_CLEAR                  该通知能被状态栏的清除按钮给清除掉

        FLAG_ONGOING_EVENT      通知放置在正在运行

        FLAG_INSISTENT                    是否一直进行,比如音乐一直播放,知道用户响应

      常用字段

           contentIntent                  设置PendingIntent对象,点击时发送该Intent

           defaults                             添加默认效果

           flags                                  设置flag位,例如FLAG_NO_CLEAR等

           icon                                  设置图标

           sound                                设置声音

           tickerText                        显示在状态栏中的文字

           when                                发送此通知的时间戳

 

Notification.build构造Notification方法介绍:  

     void setLatestEventInfo(Context context , CharSequencecontentTitle,CharSequence  contentText,PendingIntent contentIntent)  

          

        功能: 显示在拉伸状态栏中的Notification属性,点击后将发送PendingIntent对象

        参数: context             上下文环境

                   contentTitle      状态栏中的大标题

                   contentText      状态栏中的小标题

                   contentIntent    点击后将发送PendingIntent对象

      说明:要是在Notification中加入图标,在状态栏和状态条中显示图标一定要用这个方法,否则报错

      最后说一下NotificationManager类的常用方法

             通过获取系统服务来获取该对象:           

                NotificationManager mNotificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE) ;

      NotificationManager常用方法介绍

               public  void cancelAll()                                                          移除所有通知 (只是针对当前Context下的Notification)

               public  void cancel(int id)                                                      移除标记为id的通知 (只是针对当前Context下的所有Notification)

               public  void notify(String tag ,int id, Notification notification) 将通知加入状态栏, 标签为tag,标记为id

               public  void notify(int id, Notification notification)                   将通知加入状态栏,,标记为id

首先,我感觉在实现中PendingIntent感觉就是Intent的包装。

它的三个实例化方法

getActivity(Context, int, Intent, int)

getService(Context, int, Intent, int)

getBroadcast(Context, int, Intent, int)

感觉是保存当前的Activity的Context,然后在外部启动Intent动作。类似于代码Context.startActivity(*, *);

常和Notification和Alarm一起使用。




最新文章
换季旧衣不再闲置!可提现,不少浙江人心动了
四月以来浙江的天气逐渐升温虽说上周六多地出现狂风暴雨这一“小插曲”但周日的天气就马上回暖了趁着这股暖和劲儿不少人开始整理
手机拍摄MV技巧分享:从稳定性到后期制作的全攻略手机mv「手机拍摄MV技巧分享:从稳定性到后期制作的全攻略」
在这个移动互联网时代,手机已经成为我们生活中不可或缺的一部分。作为一名热爱拍摄的创作者,我发现手机拍摄MV(音乐视频)不仅
vivox60tPro+和vivox60pro区别-性价比分析-参数对比手机参数对比「vivox60tPro+和vivox60pro区别-性价比分析-参数对比」
今天小编为大家带来0tPro+和vivox60pro的对比,那么这两款的区别是什么?哪款手机更值得入手?这里小编为大家带来最新的测评,可
新品发售:ZTE 中兴 Axon 40 Ultra 5G智能手机 8GB+256GBzte手机「新品发售:ZTE 中兴 Axon 40 Ultra 5G智能手机 8GB+256GB」
ZTE 中兴 Axon 40 Ultra 5G智能手机此次共有水墨和敦煌两种配色,正面采用了一块6.8英寸AMOLED的无缺柔性全面屏,2480x1116
2023大人适合玩什么游戏 适合大人玩的高人气手游推荐成人手机游戏「2023大人适合玩什么游戏 适合大人玩的高人气手游推荐」
随着互联网技术的飞速发展,电子游戏已经成为一种非常普及的娱乐方式,不仅是年轻人,很多成年人也在享受游戏带来的乐趣。那么,
男子开启辅助驾驶双手玩手机:被交警拦下警告
快科技4月6日消息,当前春光正好,不少市民选择自驾出游感受自然,然而有些人会误将辅助驾驶当成自动驾驶使用。近日,南京交警查
突然甩出“王炸”!科技巨头vivo下场“搅局”全球MR赛道
平静全球VR/MR赛道因国产科技巨头vivo于近日亮相旗下MR头显而变得风起云涌。这也代表着此前盛传已久vivo进军MR头显领域得到了切
如何有效清理手机存储空间,提升使用体验?手机缓存怎么清理「如何有效清理手机存储空间,提升使用体验?」
怎么样清理手机 (How to Clean Up Your Phone)在现代生活中,手机已经成为我们日常生活中不可或缺的一部分。然而,随着使用时间
从缅北到综艺舞台,王星真的“自由”了吗?
文 | 安青编辑 | 9527喵咕君《无限超越班 第三季》开播,作为一档演技类的综艺节目,看点不过就是演员在舞台上的演技表现。爆火