代码之家  ›  专栏  ›  技术社区  ›  mobiledevbrick

使用单例与Android服务对话

  •  4
  • mobiledevbrick  · 技术社区  · 11 年前

    我的Android应用程序运行的服务实例无法从其他应用程序访问。我知道服务在与应用程序的Activity相同的进程中运行,因为我可以从活动中读取和写入service类上的静态变量,并且service可以看到更改。

    通过静态变量/方法(或者更准确地说是单变量)与服务通信,比使用Handler或Intent与服务通信要简单得多,后者需要使所有传递的参数都可Parcelable。这两种通信方法似乎真的是为在单独进程中运行的服务而设计的,对于进程内服务来说是不必要的开销。

    看来我一定错过了什么大事。如果你知道一个服务在你的应用程序中是本地的,那么使用一个单例来与它对话有什么错?

    1 回复  |  直到 11 年前
        1
  •  4
  •   ianhanniballake    11 年前

    服务和活动之间的通信是使用 bound service :您可以构建 Binder 类,该类定义服务和活动之间的接口,并在它们之间传递任何需要的对象,而不必担心将它们分割(因为绑定器要求两者都在同一进程上)。