, поэтому я пытаюсь написать небольшой фрагмент кода Android, в котором я хочу, чтобы один поток A ожидал (), пока не станет доступным сетевое соединение. Поток A должен выполнять некоторые вещи, связанные с Wi-Fi, и, таким образом, BroadcastReceiver зарегистрирован с намерением WifiManager.NETWORK_STATE_CHANGED_ACTION. То, что я делаю сейчас, выглядит примерно так:
Boolean networkReady = new Boolean(false);
...
Thread A {
synchronized (networkReady) {
if (!networkReady) {
wait();
}
}
doStuff();
}
...
Метод onReceive () BroadcastReceiver:
public void onReceive(Context context, Intent intent) {
if (EXTRA_NETOWRK_INFO does show that network is ready) {
synchronized (networkReady) {
networkReady = true;
notify();
}
}
}
В настоящее время я получаю сообщение об ошибке: «объект не заблокирован потоком перед уведомлением». и я не могу понять, как заставить это работать ... Еще одна альтернатива, я думаю, будет вращаться вокруг флага networkReady с маленькими Thread.sleep (#), но это действительно не похоже на хорошая практика для меня;) Есть идеи?