그래서 네트워크 연결이 가능해질 때까지 한 스레드 (A)가 wait()되도록하려는 안드로이드 코드를 작성하려고합니다. 스레드 A는 일부 Wi-Fi 관련 작업을 수행해야하기 때문에 BroadcastReceiver는 WifiManager.NETWORK_STATE_CHANGED_ACTION 의도와 함께 등록됩니다.onReceive() 내에서 notify()를 호출 하시겠습니까?
Boolean networkReady = new Boolean(false);
...
Thread A {
synchronized (networkReady) {
if (!networkReady) {
wait();
}
}
doStuff();
}
...
브로드 캐스트 리시버의 onReceive() 메소드 :
public void onReceive(Context context, Intent intent) {
if (EXTRA_NETOWRK_INFO does show that network is ready) {
synchronized (networkReady) {
networkReady = true;
notify();
}
}
}
은 현재 내가 오류 받고 있어요 : 내가 지금하고 있어요는이 같은 것입니다. "개체 전에 통지 스레드에 의해 잠겨 있지를" 그리고 난이 일을하는 법을 정말로 알 수 없다. 하나의 다른 대안으로는 작은 Thread.sleep (#)을 사용하여 networkReady 플래그를 돌리는 것이지만 실제로는 그렇게 보이지 않는다. 좋은 연습;) 어떤 아이디어?
완벽하게 작동합니다. – hushaohan