¿Por qué Toast no se puede ejecutar en un subproceso secundario?
new Thread(){
@Override
public void run() {
super.run() ;
Looper.prepare();
prueba {
Toast.makeText(MainActivity.this, "ceshi",Toast.LENGTH_SHORT).show() ;
}catch (Excepción e) {
Logger.e("error",e.toString() );
}
Looper.loop();
}
}.start();
Porque, excepto el subproceso de la interfaz de usuario de actividad creado de forma predeterminada, el subproceso no Crear automáticamente, así que llame a Looper.prepare() para crear el bucle de mensajes para el hilo, luego pase Looper.loop() para que el bucle de mensajes funcione.
El segundo método es
runOnUiThread(new Runnable() {
@Override
public void run() {
p>
Toast.makeText(MainActivity.this," ceshi23333",Toast.LENGTH_SHORT).show();
}
})
new thread(){
}.start();
El código para Toast se crea en Runnable, luego, cuando necesite Toast, pase este objeto Runnable a runOnUiThread (Ejecutable). Esto permite llamar al par Runnable desde dentro del programa UI. Si el hilo actual es el hilo de la interfaz de usuario, la operación debe realizarse inmediatamente