【问题标题】:How to track network changes periodically如何定期跟踪网络变化
【发布时间】:2016-06-27 18:41:41
【问题描述】:

我从这个答案中提取了一段代码来跟踪应用程序中的服务器 IP ping 结果更改。 https://stackoverflow.com/a/28856469/6173138 这段代码的问题是它只能在第一次运行时跟踪 ping 更改。我想定期跟踪它。我希望它像使用 BroadcastReceiver 检测 Internet 连接一样工作,但在我的情况下将检测 ping 状态。

有人可以帮我解决这个问题吗?非常感谢任何建议

【问题讨论】:

    标签: java android performance broadcastreceiver ping


    【解决方案1】:

    您可以使用 ScheduledThreadPoolExecutor 定期运行您的 AsyncTask 并获取新的 ping 状态。

    例如,如果您想运行 AsyncTask 每 5 分钟检查一次 ping:

    ScheduledThreadPoolExecutor scheduler = new ScheduledThreadPoolExecutor(1);
    scheduler.scheduleAtFixedRate(yourAsyncTask, 0, 5, TimeUnit.MINUTES);
    

    【讨论】:

    • 感谢您的回复。我应该将这部分放在我的代码中的什么位置?
    • 这实际上取决于您何时开始和停止获取 ping 状态。通常,您可能希望在应用程序处于前台时启动它,并在应用程序处于后台时停止它,因此它不会永远运行。查看活动生命周期:developer.android.com/reference/android/app/…
    猜你喜欢
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    相关资源
    最近更新 更多