Solución:
Puede consultar esta biblioteca:
https://github.com/novoda/merlin
Tu solo implement Connectable
y recibirá una devolución de llamada cuando la red se apague o se active.
Por lo tanto, puede mostrar su diálogo en este escenario.
También puede consultar la biblioteca para conocer el estado actual y optar por no realizar su tarea de red
Crea Merlin (usando Merlin.Builder ())
merlin = new Merlin.Builder().withConnectableCallbacks().build(context);
Vincular y desvincular el servicio en su actividad
@Override
protected void onResume() {
super.onResume();
merlin.bind();
}
@Override
protected void onPause() {
super.onPause();
merlin.unbind();
}
Regístrese para devoluciones de llamada
merlin.registerConnectable(new Connectable() {
@Override
public void onConnect() {
// Do something!
}
});
MerlinActivity dentro de la demostración muestra una forma sencilla de ordenar Merlin de su código de aplicación principal.
Finalmente, obtuve la respuesta.
ConnectivityManager conMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = conMgr.getActiveNetworkInfo();
if (netInfo == null){
Description.setVisibility(View.INVISIBLE);
new AlertDialog.Builder(WelcomePage.this)
.setTitle(getResources().getString(R.string.app_name))
.setMessage(getResources().getString(R.string.internet_error))
.setPositiveButton("OK", null).show();
}else{
dialog = ProgressDialog.show(WelcomePage.this, "", "Loading...", true,false);
new Welcome_Page().execute();
}
Verifica la conexión a internet
ConnectivityManager mgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = mgr.getActiveNetworkInfo();
if (netInfo != null) {
if (netInfo.isConnected()) {
// Internet Available
}else {
//No internet
}
} else {
//No internet
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)