Android: синхронизация собственного потока с основным потоком

В моем приложении для Android я получил обратный вызов из нативного потока в код Java, который должен быть синхронизирован с основным потоком пользовательского интерфейса. Предполагается, что поток пользовательского интерфейса отображает список параметров на основе информации, возвращаемой из собственного потока. Пока пользователь не выберет опцию, нить должна быть заблокирована. После того, как пользователь выбирает опцию, собственный поток считывает значение и продолжает работать.

Я пытался реализовать это решение, используя ConditionVariable, однако я получаю сообщение об ошибке виртуальной машины с комментарием, указывающим на "Fatal spin-on-suspend, dumping threads".

Похоже, что невозможно использовать объект синхронизации на основе Java для синхронизации этих потоков. Код прекрасно работает в случае, когда у меня есть два потока Java.

В общем, есть ли способ использовать объект синхронизации на основе Java для синхронизации Java и собственного потока, или это необходимо реализовать с помощью NDK с вызовом из потока Java в функцию NDK, которая реализует синхронизацию?

Ответы на вопрос(1)

Ваш ответ на вопрос