聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> Notification实现播放器通知栏

Notification实现播放器通知栏

时间:    下载该word文档
想必各位初学Android的同学都有这样的经历,在我们接触服务之前,应用程序的运行都是依托于一个操作界面(即Activity),一旦离开这个界面,程序的操作也就随着终止了。然而,有时我们还有这样的需求,当离开一个操作界面时,程序任然需要继续执行(即后台运行)这时,我们就需要Android的另一大组件Service来实现这样的操作了。Service组件区别与Activity的一个最主要的特征他的运行不依赖界面,他就像一个幕后工作者,默默的运行在应用程序的背后,当应用程序界面关闭时,程序的运行就要靠他了,例如音乐的后台播放。
通知(Notification)为音乐播放器实现了那些功能?
后台播放的音乐,要实现对其播放的控制,可以通过通知栏工具来实现,且看下图:


广播接收者(BroadCastReceiver)在音乐播放器中有什么作用?
老实说,对这个组件的理解,之前我一直都有点稀里糊涂,很多同学初接触时,可能和我一样,用他来实现了短信监听的功能,即接受系统内置的广播。音乐播放器的编写让我重新认识了广播接收者的运作机制。

Android应用中,游离着各种各样的由不同应用发出广播,广播的标记信息一般附着在Intent对象上(说白了就是在新建Intent对象时,给他一个字符串作为参数,这个参数可以作为广播接收的标记),随着Intent对象的传递,广播也就被发出了。此时,要想接收这个广播,我们只需要新建一个广播类,并定制带有这个标记的广播,在这个广播被发出时,我们就能接收这条广播,并完成相应的操作了。
服务、广播接收者、通知共同实现通知栏音乐播放控制:准备工作:
定义接口,用于传递音乐的播放信息:
[java]viewplaincopy
1.publicinterfaceIMusic{2.publicvoidmoveon(;//继续3.publicvoidpause(;//暂停4.publicvoidstop(;//停止5.publicvoidnextSong(;//下一曲6.publicvoidlastSong(;//上一曲7.}

定义Application类,用于传递全局变量:

[java]viewplaincopy
1.publicclassMp3ApplicationextendsApplication{2.publicListsongsList;//当前播放列表
3.publicintsongItemPos;//当前播放音乐在列表中的位置4.publicNotificationManagernotManager;5.publicIMusicmusic;

6.}

定义Service类,用于控制音乐播放:
[java]viewplaincopy
1.publicclassPlayerServiceextendsService{2.privateMediaPlayermp;
3.privateMp3Applicationapplication;4.privateListsongs;5.privateintsongItemPos;6.
7.@Override
8.publicvoidonCreate({9.super.onCreate(;
10.application=(Mp3ApplicationgetApplication(;11.songs=application.songsList;12.}13.
14.@Override
15.publicIBinderonBind(Intentintent{16.play(songItemPos;
17.returnnewMusicListener(;18.}19.
20.publicvoidplay(intposition{
21."white-space:pre">//传入播放位置在列表中的边界22.if(position>=0{
23.position=position%application.songsList.size(;24.}25.else{
26.position=application.songsList.size(+position;27.}28.
29.application.songItemPos=position;//在全局变量中标记当前播放位置30.SongcurrentSong=songs.get(position;//获取当前播放音乐
31.UrimusicTableForSD=MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;32.Uriuri=Uri.withAppendedPath(musicTableForSD,33."/"+currentSong.getId(;//初始化mp对象34.mp=MediaPlayer.create(this,uri;35.
36.System.out.println(currentSong.getName(;37.

免费下载 Word文档免费下载: Notification实现播放器通知栏

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服