2012-10-02 29 views
1

我有一个远程服务,我想使用该服务来检查onPrepareOptionsMenu中的一些条件。但是当我从其他活动回来时,有时候我会得到“粘结剂空”异常。我在onServiceDisconnected中将活页夹设置为null。Android - OnServiceDisconnected是否在Activity onStop之后被调用?

我的问题:

  1. 是否onServiceDisconnected活动的onStop之后叫什么名字?
  2. onStart而不是onCreate更好吗?
  3. 请您简单介绍一下本地服务和远程服务的区别吗?

回答

0

1)编号onServiceDisconnected()只有当服务意外终止时才会调用,例如托管服务的进程崩溃时。当您从服务中解除绑定时,它不会被调用。来自documentation

当与服务的连接丢失时调用。这通常是 发生在托管服务的进程已崩溃或已被终止时。这不会删除ServiceConnection本身 - 绑定到该服务的此 将保持活动状态,并且当服务下一个 正在运行时,您将收到对onServiceConnected(ComponentName,IBinder)的呼叫 。

2)一般来说,如果你不需要,而你的活动停止,那么,在结合和onStart()在解除绑定到onStop()连接到服务是正确的道路要走。这里的想法是,当你的活动在后台时,你不会浪费资源。但是,在某些情况下documentation for bound services表示在onCreate()中绑定并在onDestroy()中解除绑定也可以。

3)本地服务意味着服务与消费者处于同一个进程中。远程服务是处于不同进程中的服务。

相关问题