【发布时间】:2019-09-19 00:05:40
【问题描述】:
我正在使用此代码在 API 20 及以下版本中连接丢失时收到通知。
registerReceiver(getConnectivityStateBroadcastReceiver(), new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
private class ConnectivityStateBroadcastReceiver extends BaseBroadcastReceiver {
/**
* @param userLoggedIn
* @param context
* @param intent
*/
@Override
protected void onReceive(Boolean userLoggedIn, Context context, Intent intent) {
Bundle extras = intent.getExtras();
boolean notConnected = extras.getBoolean(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
// DO something
}
}
但它不适用于 API 21。
我该如何解决这个问题?也许它与ConnectivityManager.NetworkCallbak 有关,但我没有找到任何使用它的示例。谢谢。
【问题讨论】:
-
你可以创建一个在运行时递归运行的线程尝试连接到网络,当你从它捕获一个 NetworkException 时,你就失去了连接
-
这听起来像是一个非常错误的方法。
-
我在工作中使用的是我自己的,没有错误也没有超载
-
好吧,我宁愿使用内置功能
标签: android android-5.0-lollipop