</pre><pre class="java" name="code">
利用Service实现背景音乐的播放
</pre><pre class="java" name="code">
在android应用程序里,有一种没有UI的类(android.app.Service)——Service。简单来说,Service是一个 background process(背景程序),通过背景程序,可以实现一些不需要UI的功能,比如播放背景音乐。
当然,首先要在资源文件夹中添加一首MP3歌曲:
- <strong>1、Activity类
- [java]
- </strong> <pre name="code" class="html">package demo.camera;
<strong>1、Activity类
[java]
</strong> <pre name="code" class="html">package demo.camera;
import android.app.Activity; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.os.Bundle; import android.os.IBinder; import android.view.View; /** * 演示Activity如何利用Service来完成后台Audio的播放功能 * 同时如何将Service和Activity进行绑定 * @author Administrator * */ public class BackgroundAudioDemo extends Activity { private AudioService audioService; //使用ServiceConnection来监听Service状态的变化 private ServiceConnection conn = new ServiceConnection() { @Override public void onServiceDisconnected(ComponentName name) { // TODO Auto-generated method stub audioService = null; } @Override public void onServiceConnected(ComponentName name, IBinder binder) { //这里我们实例化audioService,通过binder来实现 audioService = ((AudioService.AudioBinder)binder).getService(); } }; public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.back_audio); } public void onClick(View v){ int id = v.getId(); Intent intent = new Intent(); intent.setClass(this, AudioService.class); if(id == R.id.btn_start){ //启动Service,然后绑定该Service,这样我们可以在同时销毁该Activity,看看歌曲是否还在播放 startService(intent); bindService(intent, conn, Context.BIND_AUTO_CREATE); finish(); }else if(id == R.id.btn_end){ //结束Service unbindService(conn); stopService(intent); finish(); }else if(id == R.id.btn_fun){ audioService.haveFun(); } } }