Android学习-运用手机多媒体( 二 )


再看. 。这个构造器还可以再连追一个方法,接收的参数正是一个对象 。因此,这里就可以通过构建出一个延迟执行的“意图”,当用户接收到这条通知时就会执行相应的逻辑 。
现在来优化项目,给刚才的通知加上点击功能,让用户点击它的时候可以启动另一个活动 。
首先要准备好另一个活动,右击com..包->New->->Empty->,新建,布局起名为 。然后修改.xml中的代码,如下
这样就把这个活动准备好了,接下来我们修改中的代码,给通知加入点击功能,如下
可以看到,这里先是使用表达出我们想要启动的“意图”,然后将构建好的对象传入到的方法里,以得到的实例,接着在.中调用方法,把它作为参数传入即可 。
现在运行后,实现了点击功能,但是发现系统状态栏上的通知图标还没有消失 。
这是因为如果我们没有在代码中对该通知进行取消,它就会一直显示在系统的状态栏上 。解决的方法有两种,一种是在.中再连追一个方法,一种是显式的调用的方法将他取消,我们都学习一下 。
①第一种写法
可以看到,方法中传入true,就表示当点击了这个通知之后,通知会自动取消掉 。
②第二种方法
这里在方法中传入了1,这个1就是创建通知时给每条通知指定的id 。如果你想取消掉哪条通知,就在方法中传入该通知的id就行了 。
通知的进阶学习
通知和广播的区别??
上面创建的通知属于最基本的通知,实际上.中提供了非常丰富的API来让我们创建出更加多样的通知效果 。从中选一些比较常用的API来学习 。
首先是方法 。
它可以在通知发出时播放一段音频,这样就能更好地告知用户有通知到来 。方法接受一个Uri参数,所以在指定音频文件的时候还需要先获取到音频文件对应的URI 。比如说,每个手机的//media/audio/目录下都有很多的音频文件,我们可以从中随便选一个音频文件,那么在代码中就可以这样指定:
除了允许播放音频外,我们还可以在通知到来的时候让手机进行震动,使用的时这个属性 。它是一个长整型的数组,用于设置手机静止和振动的时长,以毫秒为单位 。下标为0的值表示手机静止的时长,下标为1的值表示手机震动的市场,下标为2的值又表示手机静止的时长,以此类推 。
所以,如果想要让手机在通知到来的时候立刻振动1秒,然后静止1秒,再震动1秒,代码就可以写成:
不过,想要控制手机震动还需要声明权限 。因此,我们还得编辑.xml文件,加入如下声明:
接下来学习如何在通知到来时控制手机LED灯的显示 。
可以使用方法来实现这种效果,方法接受三个参数,第一个参数用于指定LED灯的颜色,第二个参数用于指定LED灯亮起的时长,以毫秒为单位,第三个参数用于指定LED灯暗去的时长,也是以毫秒为单位 。所以,当通知到来时,如果想要实现LED灯以绿色的灯光一闪一闪的效果,就可以写成:
当然,如果你不想进行那么多繁杂的设置,也可以直接使用通知的默认效果,它会根据当前手机的环境来决定播放什么铃声,以及如何震动,写法如下:
通知的高级功能
方法,这个方法允许我们构建出富文本的通知内容 。也就是说通知中不光可以有文字和图标,还可以包含更多的东西 。方法接受一个.Style参数,这个参数就是用来构建具体的富文本信息的,如长文字、图片等 。
在开始使用方法之前,我们先来做一个试验吧,之前的通知内容都比较短,如果设置成很长的文字会是什么效果呢?比如这样写:
运行效果如图: