versiones pie oreo developer caracteristicas android

pie - android versiones



Android: ¿Cuál es la diferencia entre Activity.runOnUiThread y View.post? (3)

No hay diferencia real, excepto que View.post es útil cuando no tiene acceso directo a la actividad.

En ambos casos, si no está en el subproceso de la interfaz de usuario, se llamará detrás de las escenas al Handler#post(Runnable) .

Como CommonsWare mencionó en el comentario, hay una diferencia entre los dos: cuando se llama en el subproceso Ui, Activity#runOnUiThread llamará directamente al método de run , mientras que View#post publicará el runnable en la cola (por ejemplo, llame a la Handler#post )

El punto importante de la OMI es que ambos tienen el mismo objetivo, y para quien lo use, no debería haber diferencia (y la implementación puede cambiar en el futuro).

¿Cuál es la diferencia entre Activity.runOnUiThread y View.post , podría alguien, por favor, explicar?


O bien son aceptables para la mayoría de las situaciones y en su mayor parte son intercambiables, pero son sutilmente diferentes. La mayor diferencia, por supuesto, es que uno está disponible desde una Activity y el otro desde una View . Hay mucha superposición entre ellos, pero a veces en una Activity no tendrás acceso a una View , y algunas veces en una View no tendrás acceso a una Activity .

Uno de los casos View.post que he encontrado con View.post que mencioné en una respuesta a otra pregunta de SO en View.post : View.post solo funciona desde otro subproceso cuando la View está conectada a una ventana. Esto rara vez es un problema, pero ocasionalmente puede hacer que Runnable nunca se ejecute, especialmente si llama a View.post en el método onCreate de su Activity . Una alternativa es usar Handler#post(Runnable) que es lo que Activity.runOnUiThread y View.post usan de todas formas.

(editado para mayor precisión, agregado "de otro hilo")


Otra diferencia entre Activity.runOnUiThread y view.post () es que se llama al ejecutable en view.post () después de que la vista se adjunta a una ventana.