Ответ 1
Слушайте CONNECTIVITY_ACTION
Это выглядит как хороший примерный код. Вот фрагмент:
IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
context.registerReceiver(mReceiver, filter);