我的查询正在<执行3毫秒。但问题是,我正在从查询执行中获得的游标中创建一个pojo类对象。此字段的对象创建和设置值花费的时间超过140毫秒。 Pojo类有大约36个字段。有任何解决这个问题的建议。?
由于
答案 0 :(得分:0)
您要实例化多少个对象? 36个领域看不太多。
如果你有很多对象,你可以在一个单独的线程中实例化它们。当然,您必须设置某种回调以找出何时加载所有内容
答案 1 :(得分:0)
我知道c.getColumnIndex()
方法需要更多时间。我知道加速事情的最佳方法如下:
Cursor c = null;
try {
c = db.query(......);
if(c != null) {
int channelIdIndex = c.getColumnIndex(OptimizedMessage.CHANNEL_ID);
int clientIdIndex = c.getColumnIndex(OptimizedMessage.CLIENT_ID);
while (c.moveToNext()) {
OptimizedMessage newMessage = new OptimizedMessage();
newMessage.setChannelId(c.getLong(channelIdIndex));
newMessage.setClientId(c.getLong(clientIdIndex));
messages.add(newMessage);
}
}
} finally {
if (c != null) {
c.close();
}
}
您可以看到c.getColumnIndex()
方法仅使用一次。