我目前正在使用 Monodroid/Xamarin 开发跨平台应用程序。它使用 SQLite.net 数据库,目前我只构建了 Android UI。
在应用程序中,后台线程上有一个长时间运行的方法,该方法执行多次数据库读取和写入。
我在运行 android 4.2.2 的 Nexus 7 上测试了这种长时间运行的方法,似乎在第二次屏幕旋转之后,抛出了 SQLite 异常并且应用程序崩溃了。
异常堆栈跟踪因您旋转屏幕的时间而异,但异常始终是对象未设置为 Prepare2 内的实例。
有趣的是,在运行 4.1.2 的三星 Galaxy S2 上进行测试时,仍然会发生异常,但这是一个不同的异常。此外,在三星 Galaxy Tab 2 和模拟器上进行测试,根本不会抛出错误,并且该方法完成得很好。
任何想法,提示,建议将不胜感激。
作为一个附带问题 - 在我使用 Xamarin 看到的所有跨平台应用程序中 - 数据库层和/或存储库始终是静态的 - 这是什么原因?
感谢大家