bind方式启动服务播放音乐
package com.example.bindservice_demo;
import com.example.bindservice_demo.MyService.MyBind;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
public class MainActivity extends Activity {
private MyBind myBind;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//2.鎸囧悜褰撳墠鐨剆ervice
Intent service = new Intent(this,MyService.class);
//3.
ServiceConnection conn = new ServiceConnection() {
//鍙栨秷缁戝畾 --- onunbind
@Override
public void onServiceDisconnected(ComponentName name) {
// TODO Auto-generated method stub
}
//缁戝畾鎴愬姛 -- onbind
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
// TODO Auto-generated method stub
//8.鎺ュ彈service鐨勫唴瀹�
myBind = (MyBind) service;
}
};
//1銆傚皢Activity涓嶴ervice杩涜缁戝畾
bindService(service, conn, BIND_AUTO_CREATE);
}
//9.鎾斁闊充箰
public void setbind(View v){
myBind.start();
}
public void setp(View v){
myBind.pause();
}
}
-------------------------
package com.example.bindservice_demo;
import java.io.IOException;
import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Binder;
import android.os.Environment;
import android.os.IBinder;
public class MyService extends Service{
private MyBind myBind;
private MediaPlayer mediaPlayer;
//鍒涘缓
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
//5.
mediaPlayer = new MediaPlayer();
myBind = new MyBind();
}
//缁戝畾
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
//7.
return myBind;
}
//鍙栨秷缁戝畾
@Override
public boolean onUnbind(Intent intent) {
// TODO Auto-generated method stub
return super.onUnbind(intent);
}
//5.濡傝姳 鎾斁闊充箰
public void getMusic(){
// try {
// mediaPlayer.setDataSource(Environment.getExternalStorageDirectory()+"/f.mp3");
// mediaPlayer.prepare();
// mediaPlayer.start();
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
//
// }
mediaPlayer = MediaPlayer.create(this, R.raw.f);
mediaPlayer.start();
}
//鏆傚仠
public void getpause(){
mediaPlayer.pause();
}
//閿�姣�
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
if(mediaPlayer!=null){
mediaPlayer.release();
mediaPlayer=null;
}
}
//4.涓棿浜虹殑鍒癝ervice 涓殑鏂规硶
class MyBind extends Binder{
//6.鍦ˋctivity涓皟鐢� 鐨勬柟娉�
public void start(){
getMusic();
}
public void pause(){
getpause();
}
}
}