首页 > 学院 > 开发设计 > 正文

使用混合方式开启服务----百度音乐盒框架的搭建

2019-11-08 00:37:58
字体:
来源:转载
供稿:网友
MainActivity 类:
package com.itheima74.test;import android.content.ComponentName;import android.content.Intent;import android.content.ServiceConnection;import android.os.Bundle;import android.os.IBinder;import android.support.v7.app.AppCompatActivity;import android.view.View;/** * 混合方式开启服务,百度音乐盒框架的搭建 */public class MainActivity extends AppCompatActivity {    PRivate MyConn mConn;    private Iservice mIservice;// 中间人对象,获取这个对象后可以调用其方法(服务中的方法)    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        // 1.先startService()保证服务在后台长期运行        Intent intent = new Intent(this, MusicService.class);        startService(intent);        // 2.再bindService()获取中间人对象以调用服务中的方法        mConn = new MyConn();        bindService(intent,mConn,BIND_AUTO_CREATE);    }    private class MyConn implements ServiceConnection {        @Override        public void onServiceConnected(ComponentName name, IBinder service) {            mIservice = (Iservice) service;        }        @Override        public void onServiceDisconnected(ComponentName name) {        }    }    // 点击按钮,播放音乐    public void playMusic(View view) {        mIservice.callPlayMusic();    }    // 点击按钮,暂停音乐    public void pauseMusic(View view) {        mIservice.callPauseMusic();    }    // 点击按钮,重新播放音乐    public void replayMusic(View view) {        mIservice.callReplayMusic();    }    @Override    protected void onDestroy() {        super.onDestroy();        // 取消绑定服务        unbindService(mConn);    }}
MusicService 类:
package com.itheima74.test;import android.app.Service;import android.content.Intent;import android.os.Binder;import android.os.IBinder;import android.support.annotation.Nullable;/** * Created by My on 2017/2/23. */public class MusicService extends Service {    @Nullable    @Override    public IBinder onBind(Intent intent) {        return new MyBinder();    }    @Override    public void onCreate() {        super.onCreate();    }    @Override    public void onDestroy() {        super.onDestroy();    }    // 播放音乐的方法    public void playMusic(){        System.out.println("音乐播放了");    }    // 暂停音乐的方法    public void pauseMusic(){        System.out.println("音乐暂停了");    }    // 重新播放音乐的方法    public void replayMusic(){        System.out.println("音乐重新播放了");    }    // 定义中间人对象    private class MyBinder extends Binder implements Iservice{        @Override        public void callPlayMusic() {            playMusic();        }        @Override        public void callPauseMusic() {            pauseMusic();        }        @Override        public void callReplayMusic() {            replayMusic();        }    }}
Iservice 接口:
package com.itheima74.test;/** * 定义一个接口,将想暴露的方法暴露出去 * Created by My on 2017/2/23. */public interface Iservice {    void callPlayMusic();    void callPauseMusic();    void callReplayMusic();}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表