Android: Synchronizacja rodzimego wątku z głównym wątkiem

W mojej aplikacji na Androida otrzymałem wywołanie zwrotne z wątku rodzimego do kodu Java, które musi być zsynchronizowane z głównym wątkiem interfejsu użytkownika. Intencją jest, aby wątek interfejsu wyświetlał listę opcji opartych na informacjach zwróconych z wątku rodzimego. Dopóki użytkownik nie wybierze opcji, natywny wątek musi zostać zablokowany. Po wybraniu przez użytkownika opcji natywny wątek odczytuje wartość i kontynuuje działanie.

Próbowałem zaimplementować to rozwiązanie za pomocą zmiennej ConditionVariable, ale otrzymałem błąd VM z komentarzem wskazującym „Fatal spin-on-suspend, dumping thread”.

Wygląda na to, że nie jest możliwe użycie obiektu synchronizacji opartego na Javie do synchronizacji tych wątków. Kod działa doskonale w przypadku, gdy mam dwa wątki Java.

Zasadniczo jest jakiś sposób na użycie obiektu synchronizacji opartego na Javie do synchronizacji Java i wątku rodzimego, czy też trzeba to zaimplementować za pomocą NDK z wywołaniem z wątku Java do funkcji NDK, która implementuje synchronizację?

questionAnswers(1)

yourAnswerToTheQuestion