- class QueryHandler extends AsyncQueryHandler {
- QueryHandler(ContentResolver res) {
- super(res);
- }
- @Override
- protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
- mActivity.init(cursor);
- }
- }
AsyncQueryHandler--->當contentProvied發生變化時候同步更新顯示就可以通過使用AsyncQueryHandler類來達到這一要求
上面的代碼--->onQueryComplete()--->就是當cursor更新完之後的
- public void init(Cursor c) {
- mAdapter.changeCursor(c);
- if (mQueryCursor == null) {
- MusicUtils.displayDatabaseError(this);
- setListAdapter(null);
- mReScanHandler.sendEmptyMessageDelayed(0, 1000);
- return;
- }
- MusicUtils.hideDatabaseError(this);
- }
如上面的當cursor變化後就把adpter中的新cursor給新的值
作用:
當查詢大量數據的時候,爲了不阻塞UI線程,而提供的一個AsyncQueryHandler extentd Handler
相當於我們線程中開始的handler。sendmessage()-->處理我們的東東
結束時候又handler.sendmessage()的作用一樣。
不用通過線程來處理查詢中費時間的事情。通過這個就可以實現。