1. 创建一个service:
public class MyService extends Service {
//实现onBind
public IBinder onBind(Intent intent) { // TODO: Return the communication channel to the service. return binder;// throw new UnsupportedOperationException("Not yet implemented"); }/** * 创建Binder对象,返回给客户端即Activity使用,提供数据交换的接口\ * 因为这个对象要通过onBind函数返回所以要继承Binder */ public class ClassBinder extends Binder{ // 声明一个方法,getMyService_binder。(提供给客户端调用) public MyService getMyService(){ // 返回当前对象MyService_binder,这样我们就可在客户端端调用Service的公共方法了 return MyService.this; } }/** * service里面的方法 * @return */ public int getCount(){ return count; }
}
2.在清单中申明service
<application>
<service android:name=".MyService" android:enabled="true" android:exported="true"> </service> </application>3.调用service
Intent intent=new Intent(this,MyService.class);
this.bindService(intent,serviceConnection, Service.BIND_AUTO_CREATE);MyService myservice;serviceConnection=new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { Log.d(TAG, "绑定成功调用:onServiceConnected"); // 获取BinderMyService.ClassBinder classBinder=(MyService.ClassBinder)service;myservice=classBinder.getMyService();}@Overridepublic void onServiceDisconnected(ComponentName name) {Log.d(TAG, "注销成功调用:onServiceDisconnected");myservice=null;}};获取数据:myservice.getCount()
4.停止service
this.unbindService(serviceConnection);
流程: 都只会执行一次
onCreate()
onBind(Intent intent)onUnbind(Intent intent)onDestroy()
http://blog.csdn.net/javazejian/article/details/52709857