2016-06-03 7 views
0

Ich habe einige seltsame Verhaltensweisen. Auf Samsung S6 stürzt meine App mit Looper Ausnahme ab, wo es heißt, kann nicht Handler innerhalb Thread erstellen, die looper.prepare() nicht aufrufen.Looper des Android variiert auf Geräten

Das ist OK, ich verstehe und gleiche geschieht auf LG, aber was ist das seltsamste Teil ist, dass ich Huawei p8 Lite und Google Nexus 6, wo ich nicht bekommen, dass Absturz.

Durch Googeln konnte ich keine Ressourcen finden.

Ich mache einfach nur einen Toast und die Vielfalt verwirrt mich wirklich. Die Frage ist, warum ich auf Samsung und Ig stürzen, aber auf Huawei und Nexus habe ich nicht?

+0

Sie nicht Toast aus einem Nicht-UI-Thread aufrufen sollte. – muratgu

+0

Ich weiß, dass ich es nur falsch verstanden habe, aber die Frage ist, warum auf Samsung und LG ich den Absturz und auf Nexus und Huawei habe ich nicht? –

+0

sollten Sie keine UI-Sachen von keinem UI-Thread machen. Zeitraum. – Sam

Antwort

1

Um diese Frage richtig zu beantworten, müsste man Implementierungsdetails dieser modifizierten Android-Versionen kennen. AFAIK das richtige Verhalten ist, dass die Ausnahme ausgelöst werden sollte, wenn ein Looper aus einem leeren Thread erstellt wurde.

Arbeitet der Handler an Nexus und Huawei? Konnten Sie Runnables mit diesem Handler posten und ausführen? Vielleicht versagt es still. Vielleicht ruft es intern Looper.prepare() an? Sie können Looper/Handler mit Looper/Handler.dump() debuggen. Siehe: https://developer.android.com/reference/android/os/Looper.html#dump(android.util.Printer, java.lang.String) und https://developer.android.com/reference/android/os/Handler.html#dump(android.util.Printer, java.lang.String)

Sie immer den Haupt-Thread des Looper Looper.getMainLooper() durch den Aufruf bekommen. Es sollte in Ihrem Fall sicher sein.

See: https://developer.android.com/reference/android/os/Looper.html#getMainLooper()

+0

Ich aktualisierte die Frage bitte überprüfen –

+0

Aber +1 dafür wusste ich nicht! –

+0

Nein, das erfüllt mich voll! Ja, ich denke, es gibt einige "Hacks", die da gehen, weder auf Huawei noch auf Google Nexus der Absturz nicht passiert, also ich denke, ich bin immer noch an dem Punkt, dass modifizierte Android immer Verluste Präzision und Machen Sie sich darüber Gedanken, dass dies das kleinste Problem ist, stellen Sie sich die größten Probleme damit vor –

Verwandte Themen