代码之家  ›  专栏  ›  技术社区  ›  George V.M.

onBind之前是否始终调用onCreate?(对于尚未运行的服务)

  •  5
  • George V.M.  · 技术社区  · 8 年前

    如果我尝试使用绑定到服务 Context.bindService() ,并且该服务尚未运行/启动,是否可以保证 onCreate 之前肯定会打电话 onBind

    如果没有,在哪些情况下 创建时的回调函数 在之前被呼叫 onBind公司 ?在我做的测试中, 创建时的回调函数 以前似乎总是有人打电话 onBind公司 .但我需要确定这一点,因为我有一些逻辑,如果这个顺序发生变化,可能会失败

    如果有帮助,我将绑定到此服务以获取 Messenger 我将向其发送消息。所以实际上,我的问题是 “我可以确信吗 创建时的回调函数 将在服务处理我的任何消息之前执行?“”

    2 回复  |  直到 8 年前
        1
  •  3
  •   Murat Karagöz    8 年前

    这个 onCreate 将首先调用。如果 Service 已在运行。

    enter image description here

    Service overview docs

    Bounded Service overview

        2
  •  2
  •   Larry Schiefer    8 年前

    是的 onCreate() 始终首先调用回调。从文档中:

    客户端还可以使用上下文。bindService()以获取到服务的持久连接。如果服务尚未运行(执行此操作时调用onCreate()),但未调用onStartCommand(),则同样会创建该服务。