Android: Synchronisation des nativen Threads mit dem Haupt-Thread

In meiner Android-Anwendung habe ich einen Rückruf von einem nativen Thread in Java-Code, der mit dem Haupt-UI-Thread synchronisiert werden muss. Der Benutzeroberflächenthread soll eine Liste von Optionen anzeigen, die auf Informationen basieren, die vom systemeigenen Thread zurückgegeben wurden. Bis der Benutzer eine Option auswählt, muss der native Thread blockieren. Nachdem der Benutzer eine Option ausgewählt hat, liest der native Thread den Wert und läuft weiter.

Ich habe versucht, diese Lösung mit einer ConditionVariable zu implementieren. Es wird jedoch ein VM-Fehler mit dem Kommentar angezeigt, der angibt, dass beim Suspendieren schwerwiegende Threads abgelegt werden.

Es sieht so aus, als wäre es nicht möglich, ein Java-basiertes Synchronisationsobjekt zum Synchronisieren dieser Threads zu verwenden. Der Code funktioniert perfekt, wenn ich zwei Java-Threads habe.

Gibt es im Allgemeinen eine Möglichkeit, ein Java-basiertes Synchronisationsobjekt zum Synchronisieren eines Java- und systemeigenen Threads zu verwenden, oder muss dies mithilfe des NDK mit einem Aufruf des Java-Threads in eine NDK-Funktion implementiert werden, die die Synchronisation implementiert?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage