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

时间:2018-09-11 19:12:25

标签: java android

我正在尝试在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或更多关注者,则应用始终处于冻结状态。我要保存关注者和以下列表。我该如何解决手机的死机问题?

1 个答案:

答案 0 :(得分:0)

正如文档所述,每次我们使用SQLite数据库时,都必须使用AsyncTask或IntentService进行读写。请参阅此页面以获取更多详细信息:https://developer.android.com/training/data-storage/sqlite

这意味着您粘贴在此处的方法甚至可能是正确的,但是您必须使用AsyncTask来调用它,因为当它在UI线程上运行时,可能会花费很多时间,从而导致UI冻结。否则,在单独的线程中运行它,将使UI线程保持自由运行状态,并且您的UI将不再冻结