调用unbind后为什么要重置Android服务?

时间:2014-08-27 15:35:22

标签: android service unbind

在我的项目中,android服务是与串行设备的通信,并且在收到BOOT_COMPLETED广播时正在启动。偶尔我想绑定到服务以进行持久连接。取消绑定后,服务似乎重新启动,这在与串行设备通信时不太理想。

在服务中:

@Override
public IBinder onBind(Intent intent)
{
  Log.d(TAG, "onBind");
  return messenger.getBinder();
}

@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
  ...
  return START_STICKY;
}

活动:

@Override
protected void onStart()
{
  super.onStart();
  bindService(new Intent(this, BMWiService.class), serviceConnection, Context.BIND_AUTO_CREATE);
}

@Override
protected void onStop()
{
 super.onStop();
 if (serviceBound)
  {
    unbindService(serviceConnection);
    serviceBound = false;
  }
}

1 个答案:

答案 0 :(得分:1)

在绑定

之前调用startService()来启动服务