Android: ¿Dejar de usar Looper?

Tengo un hilo que utilizo para actualizar periódicamente los datos de mi actividad. Crear el hilo e iniciar un looper para el uso de un controlador con postDelay() . En onDestroy () para mi actividad, llamo a removeCallbacks () en mi manejador.

¿Debo entonces llamar a handler.getLooper().quit() ? ¿O no preocuparse de él y dejar el OS tratar de él? ¿O simplemente se ejecutaría para siempre, consumiendo ciclos de CPU?

Según la documentación de Android , debe llamar a quit ().

Cuando llama Looper.loop() se inicia un bucle while. Llamar Looper.quit() hace que el bucle termine. El recolector de elementos no puede recolectar su objeto mientras se ejecuta el bucle.

Aquí está la sección correspondiente de Looper.java:

 public static final void loop() { Looper me = myLooper(); MessageQueue queue = me.mQueue; while (true) { Message msg = queue.next(); // might block //if (!me.mRun) { // break; //} if (msg != null) { if (msg.target == null) { // No target is a magic identifier for the quit message. return; } if (me.mLogging!= null) me.mLogging.println( ">>>>> Dispatching to " + msg.target + " " + msg.callback + ": " + msg.what ); msg.target.dispatchMessage(msg); if (me.mLogging!= null) me.mLogging.println( "<<<<< Finished to " + msg.target + " " + msg.callback); msg.recycle(); } } } public void quit() { Message msg = Message.obtain(); // NOTE: By enqueueing directly into the message queue, the // message is left with a null target. This is how we know it is // a quit message. mQueue.enqueueMessage(msg, 0); } 

Ahora no tengo la respuesta correcta, pero a juzgar por varias documentaciones y tutoriales que he visto en Internet, ninguno de ellos llama a handler.getLooper (). Quit (). Así que supongo que no es necesario hacerlo explícitamente.

Pero realmente no hay ningún inconveniente si se añade este one-liner a su método onDestroy ()?

  • Grabar y procesar audio simultáneamente con Thread en Android
  • Error de acceso de realm de subproceso incorrecto al usar código compartido entre IntentService y AsyncTask (Android)
  • Clase IntentService que no está ejecutando AsyncTask en el hilo principal de ui. Método de ejecución debe ser llamado desde el hilo principal, el hilo actualmente inferido es el trabajador
  • Método de dibujo de Android que se ejecuta lento
  • Android - perfil de un hilo específico (UI Thread) a través de DDMS
  • excepción thread.stop ()
  • Android - Thread vs AlarmManager
  • GREF que aumenta / que disminuye en servicio multi-hilo (aidl) - qué significa?
  • Diferencia entre android runOnUiThread y código simple en java
  • ¿Cómo debo manejar la comunicación entre los hilos de la IA y el bucle del juego principal?
  • ¿Cómo utilizar ExecutorService con Android AsyncTask?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.