我的应用程序的接收方为android.intent.action.BOOT_COMPLETED
并启动私有VPN。但是当我收到android.intent.action.BOOT_COMPLETED
时,网络还没有准备好。如何启动android.intent.action.BOOT_COMPLETED
并等待拥有网络状态,我该怎么办?
例如,我可以有一个android.intent.action.BOOT_COMPLETED
,但手机没有互联网连接,或者我可以拥有android.intent.action.BOOT_COMPLETED
,5秒后可以访问互联网。
答案 0 :(得分:2)
您可以随时在一个接收器上收听多个项目:
data-toggle
因此,在启动后,您只需等待连接更改并完成您的工作。
答案 1 :(得分:1)
你可以注册听取android.net.conn.CONNECTIVITY_CHANGE动作的广播接收器。
然后检查你是否像这样连接:
public boolean isOnline(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
//should check null because in air plan mode it will be null
return (netInfo != null && netInfo.isConnected());
}
来源和更多信息: Broadcast receiver for checking internet connection in android app