在Android应用程序中对SQLite数据库执行查询时,最佳做法是什么?
从AsyncTask的doInBackground运行插入,删除和选择查询是否安全?或者我应该使用UI线程?我认为数据库查询可能"很重",不应该使用UI线程,因为它可以锁定应用程序 - 导致应用程序无响应(ANR).
如果我有几个AsyncTasks,他们应该共享一个连接还是应该分别打开一个连接?
这些方案是否有最佳实践?
我正在阅读Android SQLite NotePad教程,该教程引用了创建数据库适配器类来创建和访问数据库表.在处理多表SQLite数据库时,最佳做法是为每个表创建不同的适配器类,还是为整个Android应用程序创建单个数据库适配器类?
我的应用程序使用多个表,我希望不必拥有一个庞大的适配器类.但问题是,每个适配器中的NotePad示例都有一个SQLiteOpenHelper的嵌套子类.访问第一个表时,一切正常.当我尝试访问第二个tble(来自不同的活动)时,我的应用程序崩溃了.
起初,我认为崩溃是由版本控制问题引起的,但两个适配器现在都具有相同的数据库版本,但它仍然崩溃.
以下是该表的一个数据库适配器的示例.其他适配器都遵循相同的格式,具有不同的实现.
public class InfoDBAdapter {
public static final String ROW_ID = "_id";
public static final String NAME = "name";
private static final String TAG = "InfoDbAdapter";
private static final String DATABASE_NAME = "myappdb";
private static final String DATABASE_TABLE = "usersinfo";
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_CREATE = "create table usersinfo (_id integer primary key autoincrement, "
+ NAME
+ " TEXT," + ");";
private DatabaseHelper mDbHelper;
private SQLiteDatabase mDb; …
Run Code Online (Sandbox Code Playgroud) 我有一个sqlite数据库,它将从一个带有初始1000记录的web服务中填充,然后我将在每次需要时插入更多记录.我的问题是在哪里将sqlite数据库存储在设备中以便继续插入(在内部或外部存储器中),即如果我将数据库存储在内部存储器中并且当内部存储器被填充时我可以将其移动到外部并继续插入或者 如果我将它存储在外部存储器中并且外部存储器被填满并且内部有可用空间我可以移动到内部并继续插入数据..我很困惑这可以帮助我任何建议或链接请