绑定服务
2016-06-15 本文已影响28人
阳光时雨
1、DemoService.java编写
代码如下:
public class DemoService extends Service {
/**
*
*
*
*/
public IBinder onBind(Intent intent) {
return new MyBinder();//由于返回值是接口类型的IBinder,所以要新建一个类
}
/**
* MyBinder类既是onBind方法的返回值
*
*/
public class MyBinder extends Binder{
/**
*
*
*/
public void callMethodInService(int money){
if(money>500){
methodInService();
}else{
Toast.makeText(DemoService.this, "这点钱还想办事呀?", 0).show();
}
}
}
/**
* 服务里面的方法
*/
public void methodInService(){
Toast.makeText(this, "哈哈,我是服务的方法,被你调用了。", 0).show();
}
@Override
public void onCreate() {
System.out.println("服务被创建了");
super.onCreate();
}
@Override
public void onDestroy() {
System.out.println("服务被销毁了。");
super.onDestroy();
}
}
2、MainActivity.java 编写
代码如下:
public class MainActivity extends Activity {
MyBinder myBinder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/**
* 绑定服务,获取服务里面的小蜜,间接的调用服务里面的方法。
*
/**
* 服务连接成功的通讯频道
/
public void bind(View view){
Intent intent = new Intent(this,DemoService.class);
//intent 意图
//conn 服务的通讯频道
//1 服务如果在绑定的时候不存在,会自动创建
bindService(intent, new MyConn(), BIND_AUTO_CREATE);
}*
*/
private class MyConn implements ServiceConnection{
//当服务被成功连接的时候调用的方法
public void onServiceConnected(ComponentName name, IBinder service) {
myBinder = (MyBinder) service;
}
//当服务失去连接的时候调用的方法
public void onServiceDisconnected(ComponentName name) {
}
}
/**
* 调用服务里面的方法。
* @param view
*/
public void call(View view){
myBinder.callMethodInService(3000);
}
}