【问题标题】:Restarting a service on Network Change Android在 Network Change Android 上重新启动服务
【发布时间】:2013-07-13 11:13:11
【问题描述】:

我知道不可能在网络更改时保持相同的套接字,但是在网络更改后重新启动服务的最简单方法是什么?我认为最佳做法是收听android.net.conn.CONNECTIVITY_CHANGE 广播,但我将把这段代码放在哪里?服务可以杀死自己并从头开始重新创建自己,以便我的 TCP 连接也会重新启动吗?或者我是否必须将代码放入另一个杀死 TCP 服务的服务中(如果是,我如何找到正在运行的服务实例来杀死它?)

感谢您的回答。

【问题讨论】:

    标签: android service tcp connectivity


    【解决方案1】:

    编辑: 就像你启动它一样杀死你的服务。

    在您的广播接收器中:

     stopService(new Intent(context, ServiceName.class));
    

    【讨论】:

    • 这正是我所说的。但是你如何杀死一个你一开始没有启动的服务(你拥有它,但你没有启动它的意图)
    • 谢谢 - 即使意图有额外内容,这是否有效?我假设 Android 使用哈希码来比较意图(这取决于如何计算意图的哈希码 - 是否包括额外内容。)
    • 嗯,我认为它没有t matter. I think it works like this: 1) Android receiving your intent in stopService 2) Looking for instance of "ServiceName" (I dunno if wecan start several services of one class, but I suppose we cant) 3) 杀死它
    猜你喜欢
    • 1970-01-01
    • 2020-01-24
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    相关资源
    最近更新 更多