在Android应用程序中对SQLite数据库执行查询时,最佳做法是什么?
从AsyncTask的doInBackground运行插入,删除和选择查询是否安全?或者我应该使用UI线程?我认为数据库查询可能"很重",不应该使用UI线程,因为它可以锁定应用程序 - 导致应用程序无响应(ANR).
如果我有几个AsyncTasks,他们应该共享一个连接还是应该分别打开一个连接?
这些方案是否有最佳实践?
我对内容提供商有点困惑.如果我在我的应用程序中有多个活动,他们每个人都会获得自己的内容提供者实例吗?它本质上只是一个类/接口?
在一个活动中,我将有许多线程同时写入数据库.我如何处理允许一个线程一次写入?
我只是捕获SQLiteDatabaseLockedException,将线程置于休眠状态然后重试?或者,还有更好的方法?
当活动暂停/被销毁时是否释放数据库锁?如果是这样,我可以创建一个针对内容提供商本身的同步锁?