数据库的异步查询-----AsyncQueryHandler
时间:2022-03-14 02:17
使用AsyncQueryHandler异步查询帮助类,可以实现数据库的增删改查(ContentProvidert提供的数据)。如果数据量较小的时候,使用一般的数据查询就可以实现。但是如果数据量较大,就会出现ANR(Application Not Responding)问题,这个时候你也可以使用Handler,但是这样会降低效率,这个时候我们就可以使用已经封装好的异步查询框架AsyncQueryHandler。
AsyncQueryHandler内部实现://必须要有_id字段
final String[] from=new String[] { "_id","id" };
//数据库异步查询
new AsyncQueryHandler(getContentResolver()) {
protected void onQueryComplete(int token, Object cookie,
Cursor cursor) {
//TestAdapter是SimpleCursorAdapter的子类
TestAdapter adapter = new TestAdapter(MainActivity.this, cursor,
from);
listView.setAdapter(adapter);
listView.setSelection(adapter.getCount()-1);
};
}.startQuery(0, null, TestProvider.CONTENT_URI, from,
null, null, null);
上面“必须要有_id字段”,原因我在这里就不多说了,请参考我的另一篇博客: http://blog.csdn.net/u014544193/article/details/40976579。TestProvider是ContentProvider的子类。
AsyncQueryHandler的介绍,到这里基本上就结束啦,希望对大家有所帮组!!!