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