Я работаю над приложением, в котором мне нужно проверить, стабилизировано ли интернет-соединение или нет.Если интернет-соединение не стабилизировано, тогда нам нужно позвонить в наш веб-сервис, иначе мы этого не сделаем.
Для этого я написал следующий приемник Broadcast на 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, он автоматически запускается, что, в свою очередь, вызывает мой веб-сервис, где в реальном времени не происходит никаких изменений в Интернете
- Во-вторых, это только проверка беспроводного соединения и отключение, но я хочуполучить обратный вызов, когда беспроводное соединение наконец подключено к Интернету, и когда это произойдет, трансляция должна вызвать обратный вызов для моего приложения
Пожалуйста, помогите мне в обоих случаях.