【问题标题】:How synchronized on activity work, given activity is recreated on orientation change活动如何同步工作,给定活动在方向变化时重新创建
【发布时间】:2015-10-07 05:51:58
【问题描述】:

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

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

  1. 由于锁定在 Activity[同步方法] 上,当由于方向更改或任何配置更改而重新创建 Activity 时是否会导致任何问题?
  2. 在这里使用同步方法是否正确?还是应该使用同步块?

  3. 如何处理或注意数据库不损坏​​?

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

【问题讨论】:

    标签: android multithreading android-activity


    【解决方案1】:

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

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

    2. 方法应该使用同步块。有公共静态方法时我使用的同步方法。它始终取决于您想要实现的目标。

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

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

    【讨论】:

      猜你喜欢
      • 2015-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多