service简括2
service简括二
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()"); } }