android – HTC Desire中的数据库锁定问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了android – HTC Desire中的数据库锁定问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1238字,纯文字阅读大概需要2分钟。
内容图文
![android – HTC Desire中的数据库锁定问题](/upload/InfoBanner/zyjiaocheng/888/8dd5bb0a617d4a5e9c24e105f99a7030.jpg)
在我的应用程序中,一项服务是从服务器获取数据并将其插入表A.
如果我去特定的UI,我需要列出另一个表B中的数据,如果背景
操作是否会产生数据库锁定异常.我有两个数据库
在两个不同的表上并行完成的操作.
它在三星gt15801中工作正常.但是htc希望它会生成数据库锁定
错误.
HTC desire – insertion process takes 91 seconds.
Samsung gt15801 – insertion process takes 21 seconds.
解决方法:
尝试使用一个SqliteDatabaseHelper并使其成为单个实例.之后,在完成操作后不要关闭SqliteDatabase实例.
你可以为数据库实现锁定,看看这个
http://www.sqlite.org/lockingv3.html
当您启动具有许多并发操作的数据库操作时,您必须使用
database.beginTransaction(); /* for start transaction */
在完成对数据库的操作后,您可以使用
database.setTransactionSuccessful();
database.endTransaction();
但是如果你在事务之间给出错误,那么就不要设置database.setTransactionSuccessful();这样交易就会回滚.
您还可以在出现错误时检查当前数据库是否在事务中,而不是由database.inTransaction();如果它返回true,那么你在交易中,否则你不在交易中
您还可以通过调用来检查当前数据库是否已锁定
database.isDbLockedByCurrentThread();
database.isDbLockedByOtherThreads();
这将返回布尔值.
如果多个线程同时尝试读取和写入数据库,您还可以设置是否要锁定数据库
database.setLockingEnabled(boolean);
以上删除的方法已弃用,请不要使用.
内容总结
以上是互联网集市为您收集整理的android – HTC Desire中的数据库锁定问题全部内容,希望文章能够帮你解决android – HTC Desire中的数据库锁定问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。