【发布时间】:2018-10-24 21:04:07
【问题描述】:
我正在开发需要检查互联网连接是否稳定的应用程序。如果 Internet 连接不稳定,那么我们需要调用我们的 Web 服务,否则我们将无法访问。
为此,我在 Java 中编写了以下广播接收器,因为我读到 android 现在希望开发人员在 Java 类中注册此接收器。
原来是这样
private class NetworkChangeBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
callMyWebService();
}
@Override
protected void onResume() {
super.onResume();
if (!isNetworkBroadcastReceiverRegistered) {
if (NetworkChangeBR == null) {
NetworkChangeBR = new NetworkChangeBroadcastReceiver();
registerReceiver(NetworkChangeBR, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
isNetworkBroadcastReceiverRegistered = true;
}
}
acquireWakeLock(mCustomSharedPreferences.getBoolean(CustomSharedPreferences.KEEP_SCREEN_ON_ALL_THE_TIME, false));
}
@Override
protected void onPause() {
super.onPause();
if (isNetworkBroadcastReceiverRegistered) {
unregisterReceiver(NetworkChangeBR);
NetworkChangeBR = null;
isNetworkBroadcastReceiverRegistered = false;
}
}
问题: 但我面临以下问题
- 当我第一次在我的 onResume 方法中注册接收器时,它会自动触发,作为回报,它会调用我的 web 服务,因为实际上没有发生互联网变化
- 第二,这只是检查无线连接和断开连接,但我想在无线最终连接到互联网时获得回调,并且当它发生时,广播必须向我的应用程序抛出回调
请在这两种情况下帮助我。
【问题讨论】:
标签: java android broadcastreceiver android-broadcastreceiver