I have the following class for connection listener
public class connectionListener{
public ConnectivityManager conMgr;
public htmlParserListener vystrahyListener;
public htmlParserListener podmienkyListener;
private ConnectivityBroadcastReceiver mReceiver;
public connectionListener(ConnectivityManager conMgr, htmlParserListener vystrahyListener, htmlParserListener podmienkyListener){
this.conMgr = conMgr;
this.vystrahyListener = vystrahyListener;
this.podmienkyListener = podmienkyListener;
}
private class ConnectivityBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("connected");
}
}
public synchronized void startListening(Context context) {
IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
context.registerReceiver(mReceiver, filter);
System.out.println("start");
}
}
I instantiate it with this code (from MainActivity):
connectionListener conLst = new connectionListener(conMgr, vystrahyListener, podmienkyListener);
conLst.startListening(this);
However I am getting "start" at output so startListening method works but I dont get "connected" when I disable or enable mobile data. So it looks like my BroadcastReceiver is not working. What am I doing wrong?
Thanks in forward
I dont get "connected" when I disable or enable mobile data.
That is correct. This Broadcast
is not triggered when mobile data is enabled or disabled but only when the network connectivity changes.
So it looks like my BroadcastReceiver is not working. What am I doing wrong?
Your BroadcastReceiver
is working correctly. However, you expect the CONNECTIVITY_ACTION
Broadcast
to be triggered at an event where it isn't triggered.
Note: there exists no (other) Broadcast
which is sent by the system when the enabled state of mobile data is changed. You also have no option to register a Listener
for this change.