Android异步同步

时间:2012-02-15 11:37:44

标签: android android-asynctask

我有一个DBApdater类,可通过许多AsyncTasks访问。在DB上定义的每个操作都必须调用在DBAdappter类中编写的函数,该函数称为打开,插入或从db中删除,然后关闭数据库。如果一个Async对象通过DbApater的对象调用open,我怎么能阻止第二个AsyncTasks调用open,直到第一个AsyncTask在DB上调用close。我可以使用像公共static Object myLock =new Object();

这样的锁

并在开放的指导中写下

public void open()
{
      synchronizaed(myLock.getClass)
      {///Open the DB  
      }
}

public void close()
{
    synchronizaed(myLock.getClass)
      {///close the DB  
      }
     notify();
}

此代码是否有效。基本上,调用类将在open menthod上获得一个锁,并仅在调用close时释放它。

亲切的问候,

Muhammad Mateen

2 个答案:

答案 0 :(得分:0)

通过open()close()方法同步数据库访问权限是我认为正确的方法。这应该有用。

答案 1 :(得分:0)

我不熟悉Android开发中线程安全通信的细节,但从C#开发人员的角度来看你的建议是有道理的。