синхронизированный объект не заблокирован потоком перед notifyAll ()

Я хочу иметь логическое значение для уведомления некоторых разделов системы о запуске определенной службы.

По какой-то странной причине яЯ получаю ошибку.java.lang.IllegalMonitorStateException: object not locked by thread before notifyAll()

Что странно, так это то, что notifyAll () находится внутри синхронизированного блока, который контролирует объект, для которого я вызываю notifyAll ().

Мой класс начинается так: я

public class MyService {

    public static Boolean notifier = Boolean.valueOf(false);

    @Override
    public void start() {
        synchronized (MyService.notifier) {
            MyService.notifier = Boolean.valueOf(true);
            MyService.notifier.notifyAll();
        }
    }

    @Override
    public void stop() {
        synchronized (MyService.notifier) {
            MyService.notifier = Boolean.valueOf(false);
            MyService.notifier.notifyAll();
        }
    }
    ...
}

Я работаю над приложением для Android. Я неЯ думаю, это должно на что-то повлиять, но яЯ дополняю вопрос этим комментарием на случай, если это повлияет на работу Java.

Почему я получаю исключение, если объект заблокирован внутри синхронизированного блока?

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

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