Closed Tyde closed 9 years ago
Toast's sollten immer im Application context ausgeführt werden damit sie unabhängig von der activity lifecycle sind: http://developer.android.com/guide/topics/ui/notifiers/toasts.html#Basics
Toast.makeText(TucanMobile.getApplicationContext(), "Keine Internetverbindung", Toast.LENGTH_LONG).show(); sollte das problem beheben.
Oder liegt es vielleicht daran das der Toast hier in einem AsyncTask erzeugt wird? Normalerweise darf man ausserhalb des MainThreads keine GUI-Operationen ausführen. Bin mir jetzt aber nicht sicher ob Toasts dazuzählen. Dann müsste man die alle auslagern, zB in ein publishProgress(..)
Ja das muss ich ausbessern, aber ich glaube das reicht nicht. Der Fehler tritt auf, da der Toast eben innerhalb von AsyncTast ausgeführt wird. Deswegen mach ich Handler rein, welche dann im GUI Task ausgeführt werden.
Edit: Ja genau das von deinem 2. Kommentar
Kann gerade nicht testen aber versuch mal die Toasts durch publishProgress(int errorCode) zu ersetzen, zusammen mit der methode:
@Override
protected void onProgressUpdate(Integer... errorCode) {
switch(errorCode[0])
{
case 1:
Toast.makeText(TucanMobile.getApplicationContext(), .....)
break;
case 2:
//.......
}
}
und dann eben für jeden fehler einen anderen errorcode, oder direkt strings an onProgressUpdate übergeben.
onProgressUpdate läuft immer im MainThread, somit sollte das das problem lösen.
Ich mach es einfach mit Runnables. Der Fehler ist leicht zu fixen: http://stackoverflow.com/questions/3875184/cant-create-handler-inside-thread-that-has-not-called-looper-prepare
joa das ist im grunde genau das was onProgressUpdate im hintergrund macht :>
So funktioniert jetzt mit e7025c5de9abc8a3c9ce7bfd0d688d74b26ff24a
tritt auf, weil bei fehlender Internetverbindung versucht wird, ein Toast zu zeigen. SimpleSecureBrowser scheint wohl nicht den Context richtig zu haben. Das sollte durch einen Handler erledigt werden, welcher in der Activity ausgeführt wird.
http://dttyde.de:5984/acralyzer/_design/acralyzer/index.html#/reports-browser/tucan/bug/1ba2835495867bba8969289ff2b74709