【问题标题】:Android service startId parameterAndroid 服务 startId 参数
【发布时间】:2010-08-30 04:07:52
【问题描述】:

所以我了解服务生命周期以及所有这些。但我很困惑startId 参数的用途是什么?

public int onStartCommand (Intent intent, int flags, int startId)

我知道它与stopSelf(int) 结合使用,但我看不出重点是什么或生成 startId 的位置。使用 stopSelf(int) 属于什么用例?

【问题讨论】:

    标签: android service lifecycle


    【解决方案1】:

    使用 stopSelf(int) 属于什么用例?

    第 1 步:致电startService()

    步骤#2:再次致电startService()

    步骤#3:致电stopSelf()

    此时,我们希望服务不要停止,因为仍有未完成的工作,由第二个 startService() 调用表示。我们希望 startService()stopSelf() 调用匹配。

    【讨论】:

    • 哦,我想我明白了。我想我想多了。因此,只要 onStartCommand() 被执行,我们只需将 startId 存储到一个全局变量中,然后对该全局变量调用 stopSelf(int)。好的,明白了。我试图考虑将 ID 放入同步队列或其他东西,哈哈
    • @Falmarri:“所以只要 onStartCommand() 被执行,我们就将 startId 存储到一个全局变量中”——不,因为其中会有几个。您可能希望检查IntentService 并考虑这是否是您使用的更好的基类。它自己处理 stopSelf(int) 调用以及其他功能。
    • 嗯,那我想我还是一头雾水。你自己会怎么处理?有例子吗?我在任何示例中都没有看到 startId 的任何使用
    • @Falmarri:您将startId 作为参数传递给您的代码,直到您到达stopSelf() 需要它的地步。
    • @CommonsWare 如何操作startId??除了处理 1,2,3 等之外,有什么方法可以控制它??有什么方法可以创建一个整体的 Service 实例?
    猜你喜欢
    • 1970-01-01
    • 2011-07-15
    • 2015-07-02
    • 2013-09-29
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多