Cómo manejar las gotas de conexión a Internet?
Mi aplicación descarga datos de la web y los muestra al usuario. Para evitar accidentes de la aplicación causados por la ausencia de conexión a Internet he implementado la función que comprueba si hay uno antes de la descarga se inicia. No sé manejar casos cuando la conexión cae mientras que la transferencia está procesando (en AsyncTask). Catching Exeptions no funciona en mi caso 🙁 Si hay ideas o enlaces a tutoriales, por favor comparta con él. Gracias de antemano
- Problemas con las devoluciones de llamada personalizadas de AsyncTaskLoader
- Android runOnUiThread / AsyncTask no puede resolver CalledFromWrongThreadException
- Servicio v / s AsyncTask
- ¿Debo llamar a super.onPostExecute (resultado) en Android AsyncTask?
- Cómo gestionar varias tareas asíncronas de forma eficiente en Android
- Enviar datos al servidor desde el dispositivo Android cuando la aplicación llega al fondo
- Android, ¿puedo poner AsyncTask en una clase separada y tener una devolución de llamada?
- OnCreateView () espera que AsyncTask se ejecute?
- Android loopj + GCMIntentService enviar mensaje a un Handler en un hilo muerto
- Entendiendo el hilo de la interfaz de usuario
- Fragmentos de Android. Retener un AsyncTask durante la rotación de la pantalla o el cambio de configuración
- Desactivado Llamar a 'ejecutar (Params ...)' como miembro de tipo raw 'android.os.AsyncTask'
- ProgressDialog en AsyncTask
Espero que esto ayude. Sea cual sea la actividad que realice la descarga, debe crear un BroadcastReceiver que pueda manejar notificaciones de estado de conectividad. A continuación, se le notificará la caída de la conexión y se puede manejar con más gracia … como la espera de la notificación de que la conectividad está de vuelta y reiniciar la descarga:
private BroadcastReceiver mConnReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { boolean missingConnection = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false); String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON); // do whatever you need to based on current network state }
Esta página tiene buena información también: http://thiranjith.com/2011/03/31/how-to-monitor-network-connectivity-in-android/
Puede comprobar las gotas de conexión periódicamente fuera de AsyncTask
o en otro subproceso. Entonces si la conexión cae usted puede cancelar el AsyncTask llamando cancel()
.
- ¿Cómo puedo saber si una actividad de Android ha finalizado desde un comando externo de adb?
- Actividad de referencia de retención de Singleton fugas de memoria?