AsyncQueryHandler -->同步更新

  1. classQueryHandlerextendsAsyncQueryHandler{
  2. QueryHandler(ContentResolverres){
  3. super(res);
  4. }
  5. @Override
  6. protectedvoidonQueryComplete(inttoken,Objectcookie,Cursorcursor){
  7. mActivity.init(cursor);
  8. }
  9. }

AsyncQueryHandler--->当contentProvied发生变化时候同步更新显示就可以通过使用AsyncQueryHandler类来达到这一要求

上面的代码--->onQueryComplete()--->就是当cursor更新完之后的

  1. publicvoidinit(Cursorc){
  2. mAdapter.changeCursor(c);
  3. if(mQueryCursor==null){
  4. MusicUtils.displayDatabaseError(this);
  5. setListAdapter(null);
  6. mReScanHandler.sendEmptyMessageDelayed(0,1000);
  7. return;
  8. }
  9. MusicUtils.hideDatabaseError(this);
  10. }

如上面的当cursor变化后就把adpter中的新cursor给新的值

作用:

当查询大量数据的时候,为了不阻塞UI线程,而提供的一个AsyncQueryHandler extentd Handler

相当于我们线程中开始的handler。sendmessage()-->处理我们的东东

结束时候又handler.sendmessage()的作用一样。

不用通过线程来处理查询中费时间的事情。通过这个就可以实现。

你可能感兴趣的:(handler)