【发布时间】:2012-04-30 12:32:32
【问题描述】:
Android 中的光标有问题...
public int getCountNameContainWord(String word){
long time1=System.currentTimeMillis();
Cursor cur = bdd.query(TABLE_IDF, new String[] {"COUNT(idfs)"}, "idfs LIKE '"+word+"%'", null, null, null, null, null);
long time2=System.currentTimeMillis();
System.out.println("time query : "+(time2-time1));
if(cur!=null){
cur.moveToFirst();
long time3=System.currentTimeMillis();
System.out.println("time move cursor : "+(time3-time2));
int i=Integer.parseInt(cur.getString(0));
return i;
}else{
return 0;
}
}
结果:
时间查询:3
时间移动光标:3784
移动光标很慢,我不知道为什么...只有一个结果行... 你有想法让它更快吗?通常,它只需要几毫秒...
PS:对不起,我的英语不好,但我是法国人:/
【问题讨论】:
-
我并不是说这就是答案,但我建议不要在计时操作时插入 I/O。 :-) 如果将所有 println() 语句移到 if..else 块之后,它是否会发生变化? (您还必须移动返回以进行测试。)
标签: android performance sqlite cursor