如何在应用程序后台保持观察互联网访问

时间:2019-05-15 04:36:33

标签: android kotlin android-jobscheduler

当设备可以访问Internet(可以ping到8.8.8.8,不仅可以连接或可用)时,我有一种必须执行的方法。在前台和后台运行的应用程序都应使用哪种方法来检测互联网访问(无法/无法访问服务器)?

我将NetworkCallback(onAvailable()和onLost())与JobService一起使用(通过onStartJob()中的registerNetworkCallback)。它可以正确执行Internet连接,但不能访问Internet。

class MyNetworkCallback() : ConnectivityManager.NetworkCallback() {

    override fun onAvailable(network: Network?) {
        super.onAvailable(network)
        Log.i("ConnectionStatus", "Connected")
        // perform my method
    }

    override fun onLost(network: Network?) {
        super.onLost(network)
        Log.i("ConnectionStatus", "Disconnected")
    }
}

How to check internet access on Android? InetAddress never times out 本主题是关于如何通过多种方法检查Internet访问的内容,但是我不知道如何将此方法集成到JobService中以保持观察Internet访问以检查设备是否可以到达服务器。

我想要什么:

  1. 当应用程序在前台和后台运行时,设备连接到互联网并且设备可以访问服务器==>执行method()

  2. 当应用程序在前台和后台运行时,设备连接到互联网但设备无法访问服务器==>不执行method()

  3. 当应用程序在前台和后台运行时,设备无法连接到互联网并且设备无法访问服务器==>不执行method()

0 个答案:

没有答案