¿Cómo se muestra un brindis desde un hilo en segundo plano en Android?

Resuelto Arutha asked hace 54 años • 14 respuestas

¿ Cómo puedo mostrar mensajes Toast desde un hilo?

Arutha avatar Jan 01 '70 08:01 Arutha
Aceptado

Puedes hacerlo llamando a un Activitymétodo runOnUiThreaddesde tu hilo:

activity.runOnUiThread(new Runnable() {
    public void run() {
        Toast.makeText(activity, "Hello", Toast.LENGTH_SHORT).show();
    }
});
Lauri Lehtinen avatar Jun 28 '2010 17:06 Lauri Lehtinen

Me gusta tener un método en mi actividad llamado showToastal que puedo llamar desde cualquier lugar...

public void showToast(final String toast)
{
    runOnUiThread(() -> Toast.makeText(MyActivity.this, toast, Toast.LENGTH_SHORT).show());
}

Luego lo llamo con más frecuencia desde dentro MyActivityen cualquier hilo como este...

showToast(getString(R.string.MyMessage));
mjaggard avatar Oct 15 '2012 14:10 mjaggard

Esto es similar a otras respuestas, sin embargo, actualizado para nuevas API disponibles y mucho más limpio. Además, no supone que esté en un contexto de actividad.

public class MyService extends AnyContextSubclass {

    public void postToastMessage(final String message) {
        Handler handler = new Handler(Looper.getMainLooper());

        handler.post(new Runnable() {

            @Override
            public void run() {
                Toast.makeText(getContext(), message, Toast.LENGTH_LONG).show();
            }
        });
    }
}
MobA11y avatar Dec 10 '2015 23:12 MobA11y