Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Loader y LoaderManager – ¿Cómo determinar si un cargador actual está activo y en ejecución?

¿Cómo se puede consultar un LoaderManager para ver si un Loader se está ejecutando actualmente?

  • Calcule el rodamiento entre dos ubicaciones (lat, long)
  • Android 4.0, el texto en la barra de acción NUNCA muestra
  • ¿Cómo devolver el índice del niño en Layout?
  • El color de la pestaña seleccionada en la vista inferior de navegación
  • ERROR: 'keytool' no se reconoce como un comando interno o externo, un programa operativo o un archivo por lotes
  • ¿Qué hace -webkit-text-size-adjust?
  • Método para pasar nombre de usuario y contraseña en VpnService.Builder
  • ¿Cómo mantener una aplicación Android funcionando indefinidamente?
  • Android: Atributos predeterminados para vistas personalizadas
  • Android: Importación DrawerLayout no se puede resolver
  • Cómo establecer el divisor entre tabuladores en TabLayout de la biblioteca de soporte de diseño?
  • Error de java.lang.outofmemory (servicios web) en android
  • 3 Solutions collect form web for “Loader y LoaderManager – ¿Cómo determinar si un cargador actual está activo y en ejecución?”

    Llame a getLoaderManager() en su actividad ( Fragment ), encuentre su Loader y llame a isStarted() , suponiendo que eso es lo que quiere decir con "ejecutar".

    Hay dos situaciones posibles de hacerlo:

    1er caso

    Si utiliza el único cargador o tiene varios, pero no le importa cuál de ellos está ejecutando:

     getSupportLoaderManager().hasRunningLoaders() 

    Segundo caso

    Desea saber si se está ejecutando un Loader particular. Parece que no es compatible con SDK, pero puede implementarlo fácilmente por su cuenta.

    A) Simplemente agregue la bandera

     public class SomeLoader extends AsyncTaskLoader<String[]> { public boolean isRunning; @Override protected void onStartLoading() { isRunning = true; super.onStartLoading(); //... forceLoad(); } @Override public void deliverResult(String[] data) { super.deliverResult(data); isRunning = false; } //... } 

    B) y usarlo (un poco complicado) 🙂

     SomeLoader loader = (SomeLoader) manager.<String[]>getLoader(ID); Log.d(TAG, "isRunning: " + loader.isRunning); 

    La razón principal por la que he publicado aquí – es una llamada bastante complicada de un método genérico antes de lanzar un Loader a su SomeLoader .

    Recordatorio

    Lo que haga si llama a getSupportLoaderManager.restartLoader su tarea actual (si está en ejecución) no se está matando. Así que el siguiente paso será una llamada de onCreateLoader que creará un nuevo Loader . Por lo tanto, significa que puede tener 2,3,4,5 y más tareas paralelas tareas juntas (si no lo previene de alguna manera) que puede conducir a una batería de drenaje y una carga de CPU / red superior.

    Utilizar:

     getLoaderManager().getLoader(id) 

    Si existe devolver el cargador, a continuación, llamar a isStarted() para comprobar su ejecución.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.