1

我有一个 IntentService 执行以下操作: - (可能)向 SQLite 数据库添加一个条目 - 遍历数据库中的条目以查看是否应采取行动,如果是,则更新/删除该条目

一个新的 IntentService 可能会在一个已经运行的时候创建,这意味着他们将不得不为数据库访问而战。由于我在线程方面的经验不存在,而且在一般数据库方面的经验非常有限,我不确定如何最好地处理这个问题。

我的计划是这样的:(-如果添加条目,锁定数据库,添加条目,解锁数据库)

  • 锁定数据库
  • 返回要处理的第一个条目(如果有)
  • 更新条目,以便后续数据库扫描不会将该条目作为应处理的条目返回
  • 解锁数据库
  • 进程入口
  • 如果条目处理成功,锁定数据库,从数据库中删除条目,解锁数据库
  • 重复直到没有更多条目要处理

这对我来说很有意义,在纸上...... IntentService 的多个实例应该能够并排工作。虽然我更希望一次只有一个 IntentService 做它的事情,因为它们也将执行网络操作。这是一个好方法吗?有更好的方法吗?

4

0 回答 0