我正在尝试在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或更多关注者,则应用始终处于冻结状态。我要保存关注者和以下列表。我该如何解决手机的死机问题?
答案 0 :(得分:0)
正如文档所述,每次我们使用SQLite数据库时,都必须使用AsyncTask或IntentService进行读写。请参阅此页面以获取更多详细信息:https://developer.android.com/training/data-storage/sqlite
这意味着您粘贴在此处的方法甚至可能是正确的,但是您必须使用AsyncTask来调用它,因为当它在UI线程上运行时,可能会花费很多时间,从而导致UI冻结。否则,在单独的线程中运行它,将使UI线程保持自由运行状态,并且您的UI将不再冻结