基本信息
源码名称:android service 绑定监听音乐播放 示例源码
源码大小:33.85M
文件格式:.rar
开发语言:Java
更新时间:2017-11-09
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍



package com.cuit.teacher.servicedemo;

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.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class PlayBindMusic extends Activity implements OnClickListener {
    private static final String TAG = "PlayBindMusic";
    private Button playBtn,stopBtn,pauseBtn,exitBtn;
    private BindMusicService musicService;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.play_bind_music);
        setTitle("Bind Music Service");
        findView();
        bindButton();
        connection();
    }
    private void findView() {//获取UI控件
        playBtn = (Button) findViewById(R.id.play);
        stopBtn = (Button) findViewById(R.id.stop);
        pauseBtn = (Button) findViewById(R.id.pause);
        exitBtn = (Button) findViewById(R.id.exit);
    }
    private void bindButton() {//为UI控件绑定事件监听器
        playBtn.setOnClickListener(this);
        stopBtn.setOnClickListener(this);
        pauseBtn.setOnClickListener(this);
        exitBtn.setOnClickListener(this);
    }
    private void connection(){
        Log.d(TAG, "connecting...");
        Intent intent = new Intent("com.android.ServiceDemo.bindService");
        bindService(intent, sc, Context.BIND_AUTO_CREATE);
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.play:
                Log.d(TAG, "onClick: binding srvice");
                musicService.play();//使用BindMusicService提供的play接口开始播放
                break;
            case R.id.stop:
                Log.d(TAG, "onClick: stoping srvice");
                if(musicService != null){
                    musicService.stop();//使用BindMusicService提供的stop接口停止播放
                }
                break;
            case R.id.pause:
                Log.d(TAG, "onClick: pausing srvice");
                if(musicService != null){
                    musicService.pause();//使用BindMusicService提供的pause接口暂停播放
                }
                break;
            case R.id.exit:
                Log.d(TAG, "onClick: exit");
                this.finish();//由于是通过bind的方式使用service,因此在该Activity调用finish时,相关联的Service也会自动被销毁,不需要再使用代码来执行销毁Service的动作
                break;
        }
    }
    private ServiceConnection sc = new ServiceConnection() {//用于监视服务连接状态的对象
        public void onServiceDisconnected(ComponentName name) {//失去连接的回调方法
            musicService = null;
            Log.d(TAG, "in onServiceDisconnected");
        }
        public void onServiceConnected(ComponentName name, IBinder service) {//建立连接的回调方法
            musicService = ((BindMusicService.MyBinder)(service)).getService();
            Log.d(TAG, "in onServiceConnected");
        }
    };
}