Android-асинхронная синхронизация - PullRequest
0 голосов
/ 15 февраля 2012

У меня есть класс 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

Ответы [ 2 ]

0 голосов
/ 15 февраля 2012

Я не знаком со спецификой поточно-ориентированного взаимодействия в разработке под Android, но, глядя на ваше предложение с точки зрения разработчиков на C #, это имеет смысл.

0 голосов
/ 15 февраля 2012

Синхронизация доступа к базе данных с помощью методов open() и close() - это правильный подход, на мой взгляд.Это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...