java - 让后台运行并持续关注网络连接的好方法是什么?

标签 java android android-service

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

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

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

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

解决这个问题的好方法是什么?

最佳答案

BroadcastReciver 不使用电源,可以监控 Android 操作系统的许多方面,包括连接性。您可以将其构建到您的应用程序 list 中,也可以使用代码构建一个。

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

http://developer.android.com/reference/android/content/BroadcastReceiver.html

关于java - 让后台运行并持续关注网络连接的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26872234/

相关文章:

具有重载和覆盖的 Java 方法选择

android - 无法从 SharedPreferences 获取字符串值

android - Android 服务和数据通信的最佳方法是什么

java - 如何在android上的服务中显示对话框

Java 11 HttpClient 不允许 header 以冒号开头

java - 根据子对象条件在数组数组中查找对象

安卓。 6.0 中 AudioAttributes 的错误捕获存在 4 无效

java - Mosby 框架 - getView 导致 ClassCastException

Android:如何与本地服务通信和交换对象?

java - 如果 autocommit 设置为 true,我的批处理是否真的按预期执行?