【发布时间】:2015-06-23 14:25:51
【问题描述】:
public synchronized void updateStop(ArrayList<StopBean> beanList){
SQLiteDatabase db = getWritableDatabase();
String query = "DELETE FROM 'stop'";
db.execSQL(query);
for(StopBean bean : beanList){
String atco_code = bean.getAtco_code();
String name = bean.getName();
String locality = bean.getLocality();
String bearing = bean.getBearing();
String latitude = bean.getLatitude()+"";
String longitude = bean.getLongitude()+"";
ContentValues values = new ContentValues();
values.put("atco_code", atco_code);
values.put("name", name);
values.put("locality", locality);
values.put("bearing", bearing);
values.put("latitude", latitude);
values.put("longitude", longitude);
db.insert("stop", null, values);
}
db.close();
}
目前我们的应用程序通过上述方法插入了 4,000 行。这种方法的问题是实际执行需要 10-15 秒。显然,这对于简单的 4,000 行插入来说太长了。
如何更改此方法以大大加快这些插入的执行时间?
【问题讨论】:
-
在后台线程上运行??
-
@iRaviiVooda 我是 Java 新手,但我相信这段代码已经在另一个线程上运行,类
implements Runnable并且该方法在override run中调用。