Service

http://android.blog.51cto.com/268543/527314

Service 没有界面,生命周期不受用户干扰,完全依靠程序员自我掌控,介于此,对用户透明,实时性强的操作都放在Service上面运行。

service的两种启动模式 附上这两个模式的声明周期图

Service_第1张图片

1.Context.startService();本地服务应用于程序内部

调用Context.startService()启动,而以调用Context.stopService()结束

2.Context,bindService();远程服务,在程序之间运行

        ServiceConnection conn = new ServiceConnection() {
   
   @Override
   public void onServiceDisconnected(ComponentName name) {
                       如果不实现 service 的onBind(Intent intent),让它返回一个Ibind对象,这个方法将得不到执行

   }
   
   @Override
   public void onServiceConnected(ComponentName name, IBinder service) {


   }
};
        bindService(Intent(this,Myservice.class), conn, Context.BIND_AUTO_CREATE);

以下是service的代码

 @Override
    public IBinder onBind(Intent intent) {

	return new LocalBinder();
    }

    @Override
    public void onCreate() {

	super.onCreate();
    }

    @Override
    public boolean onUnbind(Intent intent) {

	return super.onUnbind(intent);
    }

    @Override
    public void onDestroy() {
	Log.d("", "服务内执行destroy方法");
	super.onDestroy();
    }

    public class LocalBinder extends Binder {

    }


最后在退出程序的时候一定要在调用者activity的来接触绑定否则会报错

    @Override
    protected void onDestroy() {
              unbindService(conn);//执行这句否则会报错
              super.onDestroy();
    }



你可能感兴趣的:(Service)