android之绑定服务调用服务的方法

public class MainActivity extends Activity {
	 private music.MyBinder mm;//在activity里面得到服务ibinder对象的引用

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}
   public void open(View view){
	   Intent intent=new Intent(this,music.class);
	   startService(intent);
	   
	   
	   
   }
   public void stop(View view){
	   Intent intent =new Intent(this,music.class);
	   stopService(intent);
	   
	   
	   
   }
   public void play(View view){
	   Intent intent =new Intent(this,music.class);
	   bindService(intent,new myconn(), BIND_AUTO_CREATE);
	   
	   
	   
   }
  private class myconn implements ServiceConnection{

	@Override
	public void onServiceConnected(ComponentName name, IBinder service) {
		System.out.println("服务被绑定");//服务返回的ibinder对象会被传递给myconn的回调方法
	    mm= (MyBinder) service;
	     
		
	}
	


	@Override
	public void onServiceDisconnected(ComponentName name) {
	
		
	}
	   

	   
   }
  public void music(View view){//利用ibinder对象间接的调用了服务里面的方法
	   mm.callchange("出发");
	   
	   
  }
	   

public class music extends Service {

	@Override
	public IBinder onBind(Intent intent) {
		System.out.println("服务绑定成功");//服务成功绑定的时候惠调用onbind方法返回一个ibinder对象
		return new MyBinder();
	}
   public class MyBinder extends Binder{
	   public void callchange(String name){//利用中间人代理 调用歌曲方法
		   classmusc(name);
		   
		   
	   }

	
	   
	   
   }
	@Override
	public void onCreate() {
		System.out.println("服务被开启");
		super.onCreate();
		
	}
	public void classmusc(String Singname){
		Toast.makeText(getApplicationContext(), "歌曲是"+Singname, 1).show();
		
		
	}

	@Override
	public void onDestroy() {
		System.out.println("服务销毁");
		super.onDestroy();
	}

}


      

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。