I know that the c.getColumnIndex() method takes longer. The best way I know to speed this up is this:
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(); } }
You can see that the c.getColumnIndex() method is used only once.
source share