读书人

Service范例-播放mp3音乐

发布时间: 2012-08-24 10:00:21 作者: rapoo

Service实例-播放mp3音乐
1.在main.xml中加入如下四个按钮



2.在res目录下新建raw目录,并拷入mp3文件,我的是www.mp3
创建如下Service


4.Activity中的代码

public class MainActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// 获取页面组件Button button1 = (Button) this.findViewById(R.id.button1);Button button2 = (Button) this.findViewById(R.id.button2);Button button3 = (Button) this.findViewById(R.id.button3);Button button4 = (Button) this.findViewById(R.id.button4);// 定义服务链接对象 -要启动哪个服务final ServiceConnection sc = new ServiceConnection() {@Overridepublic void onServiceDisconnected(ComponentName name) {Toast.makeText(MainActivity.this,"ServiceConnection onServiceDisconnected",Toast.LENGTH_SHORT).show();}@Overridepublic void onServiceConnected(ComponentName name, IBinder service) {Toast.makeText(MainActivity.this,"ServiceConnection onServiceConnected",Toast.LENGTH_SHORT).show();}};// 定义监听事件OnClickListener ocl = new OnClickListener() {//在意图中指定服务Intent intent = new Intent(MainActivity.this, HelloService.class);@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.button1:startService(intent);break;case R.id.button2:stopService(intent);break;case R.id.button3:// 绑定启动要指定服务链接对象,绑定的操作选项bindService(intent, sc, Context.BIND_AUTO_CREATE);break;case R.id.button4:unbindService(sc);break;}}};//为按钮加点击事件button1.setOnClickListener(ocl);button2.setOnClickListener(ocl);button3.setOnClickListener(ocl);button4.setOnClickListener(ocl);}}


5.从这个例子中我们可以体会到Context.startService()方法和Context.bindService()方法的区别
在模拟器中点击开启音乐播放服务后,播放音乐,此时点击右侧的回退按钮,音乐仍然播放。但是通过绑定音乐播放服务启动的音乐,在点击回退按钮后,音乐也停止了播放,说明通过这种方式启动的服务是与Context绑定的。

读书人网 >移动开发

热点推荐