Fatal signal 6 (SIGABRT) beim schreiben von Daten in SQLite
dann bin ich jetzt immer diese Fehlermeldung, wenn ich schrieb, die Daten in der Datenbank über einen längeren Zeitraum:
08-17 15:45:47.220: A/libc(10676): Fatal signal 6 (SIGABRT) bei 0x000003b2 (code=0), thread 10676 (mb.bat)
Ich schon herausgefunden, dass dies kommt, wenn android denkt, dass die Benutzeroberfläche eingefroren ist oder zu spezifisch, wenn überhaupt irgendwas blockiert den ui thread.
Aber hier ist was ich wundere mich über:
Das schreiben und alles begann von meinem eigenen Dienst, der im hintergrund laufen SOLLTEN, unabhängig von der Haupt-thread. Richtig?
Die Arbeit mit dem sqlitehelper ich brauche den Kontext, die ich bin immer aus dem service, einfach durch Aufruf
getApplicationContext()
Gibt es etwas falsch mit, dass?
Auch:
Der Dienst restartet nach dem fatalen signal, obwohl ich nicht sicher bin, ob diese ausgelöst werden könnte, durch meinen eigenen code habe ich nicht gefunden, alles im Zusammenhang mit, dass, obwohl.
- Versuchen Sie, übergeben Sie den Zusammenhang von Haupt-oder jede andere Tätigkeit, die auf service
Du musst angemeldet sein, um einen Kommentar abzugeben.
Services in android nicht laufen in einem separaten thread-Formular UI-thread, wie die Tätigkeiten, die Sie ausführen, auf den Haupt-thread zu. Sie sollten entweder definieren Sie einen Faden und führen Sie es, Sie machen Sie
IntentService
statt. Aber seien Sie vorsichtig, dass, sobald der intentservice job fertig ist wird es sotp seiner selbst.Überprüfen Sie diese heraus:
link 1
link2
run
Methode der Runnable ausführen einfügen. vergessen Sie nicht, starten Sie Ihren thread!. viel Glück.Service
wenn Sie wollen, um mit Bluetooth arbeiten. und auch Sie können ein thread in dem Ihr Dienst ausgeführt Verbindung und das abrufen von Daten in einen anderen thread. (Wie ich schon sagte, der Dienst läuft im MainThread, es sei denn, Sie machen separaten thread für deine Aufgaben).