Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有什么好方法可以让运行的后台时刻关注网络连接?_Java_Android_Android Service - Fatal编程技术网

Java 有什么好方法可以让运行的后台时刻关注网络连接?

Java 有什么好方法可以让运行的后台时刻关注网络连接?,java,android,android-service,Java,Android,Android Service,我的应用程序具有某些功能,这些功能仅在存在网络连接时激活。我已经准备好了检查连接的代码,但我不确定应该如何进行持续检查 我想每2-3秒在后台检查一次活动连接 …检查连接 …等几秒钟 …检查连接 …等几秒钟 …检查连接 …等几秒钟 …等等 我最初把它放在IntentService的一个循环中,但我听说你不应该在IntentService中运行无休止的循环,因为它们最终会被终止。然后读一读,使用一个闹钟可能是好的,但是从其他人那里听到警报,将警报限制在每分钟一次左右,否则会导致电池耗尽 有什么好方法

我的应用程序具有某些功能,这些功能仅在存在网络连接时激活。我已经准备好了检查连接的代码,但我不确定应该如何进行持续检查

我想每2-3秒在后台检查一次活动连接

…检查连接 …等几秒钟 …检查连接 …等几秒钟 …检查连接 …等几秒钟 …等等

我最初把它放在IntentService的一个循环中,但我听说你不应该在IntentService中运行无休止的循环,因为它们最终会被终止。然后读一读,使用一个闹钟可能是好的,但是从其他人那里听到警报,将警报限制在每分钟一次左右,否则会导致电池耗尽


有什么好方法可以实现这一点?

BroadcastReceiver不使用电源,可以监控android操作系统的许多方面,包括连接。您可以在应用程序清单中构建一个或使用代码构建一个

<receiver
        android:name="com.gosyvlester.bestrides.ReceiverWifi"
        android:enabled="false" >
        <intent-filter>
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
        </intent-filter>
    </receiver>


这似乎是个坏主意。当用户尝试使用需要网络的功能时,为什么不检查网络连接呢。但是,如果你需要它,根据你的能力,“否则它会导致电池耗尽”这是你的问题,在后台不断地轮询可能会耗尽你的电池。您是否只听过系统广播的连接更改?是的,经过更多的研究,我发现这个功能是内置的。谢谢