Java 如何在SQLite中设置数千个数据?

Java 如何在SQLite中设置数千个数据?,java,android,Java,Android,我正在尝试在SQLite中设置数据。但数据量很大,当开始安装时,应用程序就冻结了。我不知道我该怎么办 我的SQLite助手: public void UsersADD(String username, String picture_url, String owner) { SQLiteDatabase db = this.getReadableDatabase(); String selectQuery = "SELECT * FROM " + TABLE_NAME + " WH

我正在尝试在SQLite中设置数据。但数据量很大,当开始安装时,应用程序就冻结了。我不知道我该怎么办

我的SQLite助手:

public void UsersADD(String username, String picture_url, String owner) {
    SQLiteDatabase db = this.getReadableDatabase();
    String selectQuery = "SELECT * FROM " + TABLE_NAME + " WHERE username='"+username+"'";
    Cursor cursor = db.rawQuery(selectQuery, null);
    if (!cursor.moveToFirst()) {
        ContentValues values = new ContentValues();
        values.put(USERNAME, username);
        values.put(PICTURE, picture_url);
        values.put(OWNER, owner);
        db.insert(TABLE_NAME, null, values);
        db.close();
    }
}
该应用程序正在保存twitter上的用户关注者和以下列表,以便跟踪个人资料


若用户有6.000或更多的追随者和6.000或更多的追随者,应用程序总是冻结。我正在保存追随者和以下列表。如何解决电话冻结问题?

正如文档所述,每次使用SQLite数据库时,我们都必须使用AsyncTask或IntentService进行读写操作。请参阅本页了解更多详细信息:


这意味着您在此处粘贴的方法可能是正确的,但您必须使用AsyncTask调用它,因为当它在UI线程上运行时,可能需要花费大量时间,从而导致UI冻结。否则,在单独的线程中运行它,将使UI线程可以自由运行,并且您的UI将不再冻结

我在尝试插入5000多个寄存器时遇到了这个问题,因此,您可以计算有多少个寄存器,如果相等或超过5000个,则可以尝试不执行
选择*
,而是只提取所需的数据,还可以尝试以较小的批量进行查询。你真的在为每个查询创建一个新的连接吗?我只使用这段代码。我不知道该做什么:)是的,我想也是这样,但并不是所有的用户都能使用这个应用程序。