Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android之綁定服務調用服務的方法

android之綁定服務調用服務的方法

編輯:關於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();
	}

}



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved