百度音乐盒案例:源码:
- 接口:
- package com.itheima.baidumusic;
- public interface Iservice {
- public void callPlay();
- public void callPause();
- public void callResume();
- }
- 服务:
- package com.itheima.baidumusic;
- import android.app.Service;
- import android.content.Intent;
- import android.os.Binder;
- import android.os.IBinder;
- public class MusicService extends Service {
- @Override
- public IBinder onBind(Intent intent) {
- return new Mybinder();
- }
- /**
- * 播放的方法
- */
- public void play(){
- System.out.println("音乐播放了");
- }
- /**
- * 暂停的方法
- */
- public void pause(){
- System.out.println("音乐暂停了");
- }
- /**
- * 继续播放的方法
- */
- public void resume(){
- System.out.println("音乐继续播放");
- }
- /**
- * 定义中间人对象 在 onBind方法中返回
- * @author Administrator
- *
- */
- private class Mybinder extends Binder implements Iservice{
- @Override
- public void callPlay() {
- play();
- }
- @Override
- public void callPause() {
- pause();
- }
- @Override
- public void callResume() {
- resume();
- }
- }
- }
- 入口:
- package com.itheima.baidumusic;
- import android.os.Bundle;
- import android.os.IBinder;
- import android.app.Activity;
- import android.content.ComponentName;
- import android.content.Intent;
- import android.content.ServiceConnection;
- import android.view.Menu;
- import android.view.View;
- public class MainActivity extends Activity {
- //我的中间人对象
- private Iservice iservice;
- private MyConn conn;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- // 1 我要保证 music服务在后台长期运行 我需要调用 startservice 方法
- Intent intent = new Intent(this,MusicService.class);
- startService(intent);
- // 2 我需要调用服务里面的方法 我采用 bindService
- conn = new MyConn();
- bindService(intent, conn, BIND_AUTO_CREATE);
- // 3 要做解绑操作 要记得擦屁股
- }
- /**
- * 播放音乐
- */
- public void play(View v){
- iservice.callPlay();
- }
- /**
- * 暂停播放
- */
- public void pause(View v){
- iservice.callPause();
- }
- /**
- * 继续播放
- */
- public void resume(View v){
- iservice.callResume();
- }
- /**
- * 定义绑定服务的接口
- * @author Administrator
- *
- */
- private class MyConn implements ServiceConnection{
- // 当服务被成功绑定的时候调用
- @Override
- public void onServiceConnected(ComponentName name, IBinder service) {
- iservice = (Iservice) service;
- }
- @Override
- public void onServiceDisconnected(ComponentName name) {
- }
- }
- // 当activity 销毁的时候调用
- @Override
- protected void onDestroy() {
- //解绑服务
- unbindService(conn);
- super.onDestroy();
- }
- }
- 清单:
- <service android:name="com.itheima.baidumusic.MusicService"></service>
 
 




