如果在方向更改时重新创建活动,则活动的工作如何同步

时间:2015-10-07 05:51:58

标签: android multithreading android-activity

我有一个活动,在onCreate函数中我创建了一个Thread,它从XML文件读取并填充数据库并填充成员dataStructures。

我创建了同步方法来执行DB填充和DataStructure填充。

  1. 由于锁定在活动[synchronized methods]上,因为方向更改或任何配置更改而重新创建活动时是否会导致任何问题?
  2. 在这里使用同步方法是否正确?或者我应该使用同步块吗?

  3. 如何处理或注意以免数据库损坏?

  4. 如何确保即使在活动重新创建过程中也只存在一个DataBaseHelper实例?

1 个答案:

答案 0 :(得分:0)

如果您想做我认为您想做的事情,我建议您执行以下操作:

  1. 创建一个处理所有db方法的所有方法的线程(HandlerThread,名为DbAsyncThread或其他)。

  2. 方法应使用synchronized块。我在有公共静态方法时使用的同步方法。它总是取决于你想要达到的目标。

  3. 您可以通过异常处理的db状态不正确。如果有异常,则将其抛出或传递给ui,以便通知用户或您。

  4. 使用回调。如果有问题通过回调通知问题。如果没有涉及上下文,那么应该没有任何问题。