Android 异步同步

发布于 2025-01-05 12:09:30 字数 608 浏览 0 评论 0原文

我有一个通过许多 AsyncTasks 访问的 DBApdater 类。 DB 上定义的每个操作都必须调用 DBAdappter 类中编写的函数(称为 open、insert 或 delete),然后关闭 DB。如果一个异步对象通过 DbApater 的对象调用了 open,我如何防止第二个 AsyncTasks 调用 open,直到第一个 AsyncTask 调用关闭数据库。我可以使用像 public static Object myLock =new Object(); 这样的锁吗?

并且在打开的mentod write中

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

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

这段代码可以工作吗?基本上,调用类将获得 open 方法的锁,并仅在调用 close 时释放它。

亲切的问候,

穆罕默德·马丁

I have a DBApdater class that is accessed through many AsyncTasks. Each operation defined on the DB has to call a function written in the DBAdappter class called open, insert or delete from the db, and then close the DB. If one Async object has called open through an object of the DbApater how can i prevent a second AsyncTasks to call open until the first AsyncTask has called close on the DB. Could i use a lock like public static Object myLock =new Object();

and in the open mentod write

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

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

would this code work. Basically the calling class would obtain a lock on the open menthod and release it only when close is called.

Kind Regards,

Muhammad Mateen

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

为你拒绝所有暧昧 2025-01-12 12:09:30

在我看来,通过 open() 和 close() 方法同步对数据库的访问是正确的方法。这应该有效。

Synchronizing the access to database via open() and close() methods is the right approach in my mind. This should work.

攒眉千度 2025-01-12 12:09:30

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

I am not familiar with the specifics of thread safe communication in an android development, but looking at your suggestion from a C# developers point of view it makes sense.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文