2014-09-30 2 views
0

Привет, пожалуйста, помогите мне с wait() и notifyall() Мне это нужно, потому что повторите попытку !, функция savegame() вызывает иона на сервере и после функция получает ответ от сервера, другая функция должна повторяться.wait() и notifyall() не работает

Часть в одной функции, которую shoul ждет.

public static Boolean notifier = Boolean.valueOf(false); 
synchronized (notifier) { 
     try { 
      System.out.println("Spiel noch nicht gespeichert, warten..."); 
      notifier.wait(); 
     } catch (Exception f) { 
      Log.e("Fehler", "Beim Warten"); 
     } 
} 

и это часть функции, в которой что-то происходит, после чего функция выше должна уведомляться.

synchronized (notifier) { 
    System.out.println("UNLOCK:" + System.currentTimeMillis()); 
    notifier.notifyAll(); 
} 
+0

Прошу прощения, но этот код слишком длинный и слишком тяжелый для чтения для меня. Невозможно ли вам упростить его и опубликовать небольшой фрагмент, который может быть скомпилирован и создает проблему? – biziclop

+0

ok теперь это просто основная часть – JoJa

+0

Каково наблюдаемое поведение в кобстрестере к тому, что вы ожидаете? – Fildor

ответ

0

Я тоже смотрю на историю: вы назначаете уведомителю другой экземпляр. Поэтому wait()/notify() не будет работать, потому что вы ждете одного экземпляра, а затем уведомляете другого. Используйте два разных объекта для передачи информации о состоянии и синхронизации. Сделайте объект синхронизации статическим и окончательным, так что вы можете быть уверены, что имеете дело только с одним экземпляром. Или используйте совершенно другой подход :)

Комментарий как ответ, поэтому он может быть помечен как разрешенный.

Смежные вопросы