代码之家  ›  专栏  ›  技术社区  ›  StackOverflowed

Android Connectivity BroadcastReceiver启动速度不够快

  •  1
  • StackOverflowed  · 技术社区  · 12 年前

    我已经在我的应用程序中扩展了应用程序类。在该类中,我有一个等待连接更改的BroadcastReceiver。如果我切换到飞行模式,它会立即识别出连接丢失并接收到广播,但如果我失去数据连接(即在地下等),即使没有成功完成与互联网相关的任务(即使你尝试在浏览器中浏览),也需要几秒到几分钟的时间才能启动。 有没有更精确的方法来找出互联网连接第一次丢失的时间?

    1 回复  |  直到 12 年前
        1
  •  1
  •   Vasile Jureschi    12 年前

    查明Internet连接何时丢失的一种方法是对网络错误进行适当的异常检查。

    如果引发网络异常(套接字超时、I/O错误等),您可以将应用程序的状态设置为断开连接。当然,只有当您积极尝试通过网络发送或接收数据时,这才有效。

    如果连接通知如此重要,你可以使用远程服务器(例如ping谷歌服务器)进行定期检查,但这会耗尽你的电池,因为经常接触网络往往会使无线电保持清醒并消耗电力。