【问题标题】:Android startService Synchronous?Android startService 同步?
【发布时间】:2011-02-22 23:13:48
【问题描述】:

我在文档中的任何地方都找不到这个:

对 context.startService() 的调用是同步的还是异步的?

【问题讨论】:

    标签: android service


    【解决方案1】:

    异步。它甚至不会开始做任何工作,直到你从你所处的任何回调中返回(例如,onCreate()onListItemClick())。

    【讨论】:

    • 那么我该如何等到 startService() 完成,就像我的情况一样,我得到了服务静态引用的 NullPointerException。
    • @rahulserver:“那么我如何等到 startService() 完成,就像我的情况一样” - 你没有。您让服务告诉您它的工作何时完成(例如,LocalBroadcastManager)。 “我收到服务静态引用的 NullPointerException”——请不要创建“服务静态引用”。如果您对此主题还有其他问题,请使用“”按钮提问。
    • 看看我刚才问的问题:stackoverflow.com/questions/18081635/…
    • @curioustechizen:“startService() 同步调用 onStartCommand()”——不,它没有。 startService() 返回 ComponentName 的事实并不意味着 onStartCommand() 被同步调用。而且,如果你真的尝试过,你会很快发现它是异步调用的。 ComponentName 返回值表示Intent 解析是同步完成的,仅此而已。
    • @CommonsWare 哎呀!你是对的。该死的……我的一生都是谎言!!我希望使用这种模式为 EventBus 注册一个 Service 并立即向它发布一个事件。看来我得解决这个问题了。
    猜你喜欢
    • 1970-01-01
    • 2020-05-05
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 2012-10-12
    • 2011-06-22
    相关资源
    最近更新 更多