暂停服务直到可以建立互联网连接

Lun*_*box 5 boot service android connectivity

我有一个在启动完成后运行的服务.此服务需要互联网连接.等待设备连接到互联网的最佳做法是什么?移动wifi并不重要.

我目前的解决方案涉及一个while循环,只检查ConnectivityManager,直到其中一个网络可用,但这感觉很粗俗.

有一个更好的方法吗?

Mr_*_*s_D 2

但这感觉很粗俗

确实:D

  1. 您的接收器唤醒您的唤醒意向服务(可能一个简单的意向服务就可以,因为手机在启动时不会休眠)
  2. 服务注册一个接收器以进行连接
  3. 服务等待 CountDownLatch
  4. 当wifi连接时接收器唤醒服务

骨架代码:/sf/answers/1397809591/ - 你的情况更简单,因为你不必唤醒wifi,保持wifi锁等。否则(包括需要很长时间和无线电/CPU睡眠的情况 -在这种情况下,简单的意图服务不起作用)在 2 到 3 之间,您需要:

2a. 服务获取wifi 锁
2b。服务调用reconnect()reassociate()以及任何需要的内容(这可能是特定于设备的)