Definiuję globalny obiekt statyczny jako blokadę synchronizacji.Android java.lang.IllegalMonitorStateException: obiekt nie jest zablokowany przez wątek przed odczekaj()
public static Object ConfirmationSynObj = new Object();
Następująca funkcja jest to, co napisałem, ale rzuca wyjątek IllegalMonitorStateException.
synchronized (Config.ConfirmationSynObj) {
new Thread(new Runnable() {
@Override
public void run() {
//this is a http request
appSignInfo = getAPKSignature(context, pkinfo.packageName);
Config.ConfirmationSynObj.notify();
}
}).start();
try {
Config.ConfirmationSynObj.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
if (appSignInfo == null) {
return ret;
}
}
Czy ktoś wie jak zablokować obiektu lub funkcji w celu uniknięcia współbieżności?
Należy przestrzegać konwencji nazewnictwa Java. –