我有一个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
答案 0 :(得分:0)
通过open()
和close()
方法同步数据库访问权限是我认为正确的方法。这应该有用。
答案 1 :(得分:0)
我不熟悉Android开发中线程安全通信的细节,但从C#开发人员的角度来看你的建议是有道理的。