Tag: looper

LocationManager: java.lang.RuntimeException: Kann kein Handler im Thread erstellen, das nicht Looper.prepare ()

Normalerweise ein Fehler beim Tun etwas auf dem UI-Thread aus einem anderen Thread Ich dachte, aber ich verstehe nicht, was ich falsch mache Der Fehler scheint nur zu erscheinen, wenn das Telefon unterwegs ist, also mit einer wechselnden GPS-Position. Ich möchte, dass der aktuellste Ort gespeichert wird, also nichts auf der Benutzeroberfläche. Ich habe die […]

Android: Nur ein Looper kann per Thread erstellt werden

Ich habe ein Problem mit Android Looper. Ich habe eine Klasse, die AsynTask erweitert hat. Inside doInBackground () Methode habe ich Looper.prepare () und einige Code unten. Es läuft gut und gut zum ersten Mal, aber danach gibt es eine Ausnahme "Nur ein Looper kann pro Thread erstellt werden". Es scheint eine Lösung zu verwenden […]

Wie man HandlerThreads Looper sicher beendet

Ich habe ein HandlerThread, zu dem ich alle 5 Sekunden eine Laufzeit verlasse. Etwas wie das: HandlerThread thread = new HandlerThread("MyThread"); thread.start(); Handler handler = new Handler(thread.getLooper()); handler.post(new Runnable() { public void run() { //… handler.postDelayed(this, 5000); } }); Ich muss den Looper irgendwann beenden, nach 60 Sekunden oder so ähnlich … also schreibe ich: […]

Android Looper vs BlockingQueue?

Kann jemand erklären, warum jemand die Android Looper-Funktion verwenden sollte, um einen "Pipeline-Thread" zu erstellen, anstatt einen normalen Thread zu erstellen, der Aufgaben aus einer BlockingQueue zieht? Auf der Oberfläche scheint es wie zwei Möglichkeiten, dasselbe zu tun.

A / Looper: Konnte kein Wake-Pipe erstellen. Errno = 24

Wir bauen eine App, die viele Animationen macht und viele Bilder herunterlädt. Nach einer gewissen Anzahl von Transaktionen (eine vorhersagbare Zahl) stürzt die App mit dem Fehler ab: A/Looper: Could not create wake pipe. errno=24 Wir verwenden Looper nicht in unserem Code, aber ein paar der Bibliotheken, die wir verwenden, verwenden Looper: ActionBarSherlock: Ich glaube […]

Wie man Loopers und Threads verwaltet (Thread stirbt nicht mehr!)

Ich habe eine Klasse erweitert Thread, um Benutzerstandort durch LocationManager in einem Nicht-ui-Thread abzurufen. Ich habe dies als Thread implementiert, weil es auf Anfrage gestartet werden muss und seine Arbeit nur für eine begrenzte Zeit macht. Übrigens musste ich ein Looper-Objekt im Thread hinzufügen, um den Handler für den LocationManager (onLocationChanged) erstellen zu können. Dies […]

Was passiert, wenn ein Handler eine Nachricht an einen Thread nach Looper.prepare () platziert, aber bevor Looper.loop () aufgerufen wurde?

Betrachten Sie das folgende Snippet: Looper.prepare(); handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); getLooper().quitSafely(); } }; for(int i = 0; i < urls.size(); i++) { useCaseProvider.get().execute(callback, handler, urls.get(i), threadPool); } Looper.loop(); //Continue processing the results of all the use cases after the //loop has been asked to terminated via the […]

Wie bekommst du einen besseren Unit-Test Looper und Handler-Code auf Android?

Ich benutze die android.os.Handler-Klasse, um Aufgaben im Hintergrund auszuführen. Wenn Unit-Tests diese, rufe ich Looper.loop() , um die Test-Thread auf den Hintergrund-Task-Thread warten, um seine Sache zu tun. Später rufe ich Looper.myLooper().quit() (auch im Test-Thread), damit der Test-Thread die loop beenden und die Test-Logik wieder aufnehmen kann. Es ist alles in Ordnung und Dandy, bis […]

Wie man einen Toast in AsyncTask anhebt, bin ich aufgefordert, den Looper zu benutzen

Ich habe die Aufgaben von AsyncTask im Hintergrund. Irgendwann muss ich einen Toast ausgeben, dass etwas abgeschlossen ist. Ich habe versucht und ich habe es versäumt, weil Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() Wie kann ich das machen?

AsyncTask und Looper.prepare () Fehler

Ich habe den folgenden Code class OverlayTask extends AsyncTask<Void, Void, Void> { @Override public void onPreExecute() { if (sites != null) { myMapView.getOverlays().remove(sites); myMapView.invalidate(); sites = null; } } @Override public Void doInBackground(Void… unused) { grabShipsWithLocation(); return (null); } @Override public void onPostExecute(Void unused) { myMapView.getOverlays().add(sites); myMapView.invalidate(); isLoading = false; } } Das scheint gut […]

Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.