bindService()
public class BindActivity extends Activity {
private Button btnStartBindService;
private Button btnStopBindService;
private boolean isConnected=false; //service是否创建
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bind);
btnStartBindService=(Button)findViewById(R.id.btnStartBindService);
btnStopBindService=(Button)findViewById(R.id.btnStopBindService);
btnStartBindService.setOnClickListener(listener);
btnStopBindService.setOnClickListener(listener);
}
private OnClickListener listener=new OnClickListener() {
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.btnStartBindService:
bind();
break;
case R.id.btnStopBindService:
unBind();
break;
default:
break;
}
}
};
private void unBind() {
if(isConnected){
unbindService(connection);
}
}
private void bind() {
Intent intent=new Intent(BindActivity.this,BinderServices.class);
bindService(intent, connection, Context.BIND_AUTO_CREATE);
}
private ServiceConnection connection=new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
// TODO Auto-generated method stub
isConnected=false;
}
@Override
public void onServiceConnected(ComponentName name, IBinder binder) {
MyBinder myBinder=(MyBinder)binder;//返回MyBinder类,要强制转换
BinderServices services=myBinder.getServices();
services.myMethod();
isConnected=true;
}
};
}
public class BinderServices extends Service {
private static final String TAG = "BinderServices";
private MyBinder binder=new MyBinder();
public class MyBinder extends Binder{
public BinderServices getServices(){
return BinderServices.this;
}
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return binder;
}
public void myMethod() {
Log.i(TAG,"MyMethod()");
}
}