android - programacion - Ejecutar devolución de llamada en el hilo principal
manual de programacion android pdf (3)
Tengo un código que interactúa con el Android SDK de Android, de forma asíncrona. Desafortunadamente esto significa que cuando regresa está en un hilo de fondo.
Cocos-2dx prefiere que interactúe con él en el subproceso principal, especialmente cuando hago cosas como decirle al Director que cambie de escena (ya que implica Open GL)
¿Hay alguna manera de obtener algún código para ejecutar en el hilo principal?
En C ++:
Director::getInstance()->getScheduler()->performFunctionInCocosThread([]{
// execute code on main thread
});
Mientras tengas un Contexto, puedes hacer algo como esto:
Handler mainHandler = new Handler(context.getMainLooper());
Y para ejecutar el código en el hilo de la interfaz de usuario:
mainHandler.post(new Runnable() {
@Override
public void run() {
// run code
}
});
Según lo sugerido por kaka :
También puede usar el Looper.getMainLooper() estático que
Devuelve el looper principal de la aplicación, que se encuentra en el hilo principal de la aplicación.
runOnUiThread(new Runnable() {
@Override
public void run() {
//execute code on main thread
}
});