使用service播放sdcard中的一首歌曲,并在service中通过广播broadcast通知Activity更新界面。下面三个最终的图分别是:初始化时,播放时,暂停时。
界面是两个按钮,采用LinearLayout布局。代码如下:
1.主Activity中,有四部分:onCreate()方法、onDestroy()方法、BroadcastReceiver的一个类updateUIReceiver、和按钮事件处理方法clickHandl()。
在onCreate()方法中主要是注册一个广播。注意在onCreate()里注册,记得在onDestroy()方法里解除注册。
在onDestroy()方法里解除注册,不然退出时会报异常。
这里的广播类是在Activity里面定义的(也可以作为一个单独的类来写)。
按钮处理事件
2.在Service里,主要有onStart()、onDestroy()和sendBC4UpdateUI()几个方法。
先定义好下面这些对象
在onStart()方法中,通过用mediaPlayer.isPlaying()方法来判断当前音乐是在播放还是暂停,并利用广播传递相应的值给Activity用以更新界面。
在onDestroy()方法中,要release掉mediaPlayer。
而在sendBC4UpdateUI()方法里,就是发送广播了。
3.最后,manifest.xml注册如下。
以后可以通过改进做成一个mp3播放器。
转自: http://www.cnblogs.com/giuz/archive/2010/10/31/1865470.html