Android 活动的同步工作方式,给定的活动在方向更改时重新创建

Android 活动的同步工作方式,给定的活动在方向更改时重新创建,android,multithreading,android-activity,Android,Multithreading,Android Activity,我有一个活动,在onCreate函数中,我创建了一个线程,该线程从XML文件读取并填充数据库,还填充成员数据结构 我创建了同步方法来执行数据库填充和数据结构填充 由于锁位于活动[synchronized methods]上,当由于方向更改或任何配置更改而重新创建活动时,是否会导致任何问题? 在这里使用同步方法正确吗?还是应该使用同步块 我如何处理或注意数据库不被破坏 如何确保即使在活动重新创建期间也只存在一个DataBaseHelper实例 如果你想做我认为你想做的事情,那么我建议你做以下事情:

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

我创建了同步方法来执行数据库填充和数据结构填充

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

我如何处理或注意数据库不被破坏

如何确保即使在活动重新创建期间也只存在一个DataBaseHelper实例


如果你想做我认为你想做的事情,那么我建议你做以下事情:

创建一个名为DbAsyncThread的threadHandlerThread或任何处理所有db方法的方法

方法应使用同步块。有公共静态方法时使用的同步方法。它总是取决于你想要实现什么

您可以通过异常处理的数据库状态不正确。如果出现异常,则抛出异常或将异常传递到ui,以便通知用户或您。

使用回调。如果有问题,请通过回调通知问题。如果不涉及上下文,就不会有任何问题