I define a global static object as a synchronization lock.
public static Object ConfirmationSynObj = new Object();
The following function i
new Thread(new Runnable() {
@Override
public void run() {
Above thread is not owning lock on ConfirmationSynObj object hence throwing IllegalMonitorStateException
Use one more synchronized block inside run method
@Override
public void run() {
synchronized (Config.ConfirmationSynObj) {
//this is a http request
appSignInfo = getAPKSignature(context, pkinfo.packageName);
Config.ConfirmationSynObj.notify();
}
}