У меня есть класс DBApdater
, доступ к которому осуществляется через множество AsyncTasks
.Каждая операция, определенная в БД, должна вызывать функцию, написанную в классе DBAdappter
, которая называется open, вставлять или удалять из БД, а затем закрывать БД.Если один объект Async вызвал open через объект DbApater
, как я могу запретить второму AsyncTasks
вызывать open, пока первый AsyncTask
не вызвал close в БД.Могу ли я использовать блокировку как public static Object myLock =new Object();
и в открытом ментоде написать
public void open()
{
synchronizaed(myLock.getClass)
{///Open the DB
}
}
public void close()
{
synchronizaed(myLock.getClass)
{///close the DB
}
notify();
}
этот код будет работать.Обычно вызывающий класс получает блокировку открытого ментода и снимает ее только при вызове close.
Kind Regards,
Muhammad Mateen