Possible Duplicate:
Android Toast started from Service only displays onceerror llamando a la tostada del servicio Android
estoy usando Android Servicio definido en android.app.Service.
Llamo a este servicio (myService) de una actividad.
MyService es:
public class myService extends Service{
public IBinder onBind(Intent intent){
return null;
}
public void onCreate(){
super.onCreate();
TimerTask task = new TimerTask(){
public void run(){
Log.i("test","service running");
checkDate();
}
};
timer = new Timer();
timer.schedule(task, 0, 20000);
}
public void checkDate(){
Toast toast = Toast.makeText(this, "SIMPLE MESSAGE!", Toast.LENGTH_LONG);
toast.show();
}
}
El checkdate método() reside en el myService clase.
El error producido es:
09-19 15:41:35.267: E/AndroidRuntime(2026): FATAL EXCEPTION: Timer-0
09-19 15:41:35.267: E/AndroidRuntime(2026): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
09-19 15:41:35.267: E/AndroidRuntime(2026): at android.os.Handler.<init>(Handler.java:121)
09-19 15:41:35.267: E/AndroidRuntime(2026): at android.widget.Toast$TN.<init>(Toast.java:310)
09-19 15:41:35.267: E/AndroidRuntime(2026): at android.widget.Toast.<init>(Toast.java:84)
09-19 15:41:35.267: E/AndroidRuntime(2026): at android.widget.Toast.makeText(Toast.java:226)
Se puede publicar el código que se utiliza para iniciar esto? ¿También es este un servicio real de Android o es solo un hilo de fondo? El problema es que no puede interactuar con la interfaz de usuario desde un hilo de fondo. Si tiene una referencia al contexto de la actividad, puede llamar a runOnUIThread usando ese contexto. – Bobbake4