AsyncQueryHandler 分手后的思念是犯贱 2022-03-18 14:40 118阅读 0赞 android.content.AsyncQueryHandler继续于android.os.Handler 虽然Handler自己是没另开新线程,但是 AsyncQueryHandler自己却是另开了一个线程来进行数据的查询 实例1 AsyncQueryHandler -->同步更新 class QueryHandler extends AsyncQueryHandler \{ QueryHandler(ContentResolver res) \{ super(res);//\[这里让AsyncQueryHandler和ContentResolver联系起来\] \} @Override protected void onQueryComplete(int token, Object cookie, Cursor cursor)//监听QueryComplete事件 \{ 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); \} MusicUtils.hideDatabaseError(this); \} 实例2: package com.android.phone; import static android.view.Window.PROGRESS\_VISIBILITY\_OFF; import static android.view.Window.PROGRESS\_VISIBILITY\_ON; import android.app.ListActivity; import android.content.AsyncQueryHandler; import android.content.ContentResolver; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.view.Window; import android.widget.CursorAdapter; import android.widget.SimpleCursorAdapter; import android.widget.TextView; /\*\* \* ADN List activity for the Phone app. \*/ public class ADNList extends ListActivity \{ protected static final String TAG = "ADNList"; protected static final boolean DBG = false; private static final String\[\] COLUMN\_NAMES = new String\[\] \{ "name", "number" \}; protected static final int NAME\_COLUMN = 0; protected static final int NUMBER\_COLUMN = 1; private static final int\[\] VIEW\_NAMES = new int\[\] \{ android.R.id.text1, android.R.id.text2 \}; protected static final int QUERY\_TOKEN = 0; protected static final int INSERT\_TOKEN = 1; protected static final int UPDATE\_TOKEN = 2; protected static final int DELETE\_TOKEN = 3; protected QueryHandler mQueryHandler; protected CursorAdapter mCursorAdapter; protected Cursor mCursor = null; private TextView mEmptyText; protected int mInitialSelection = -1; @Override protected void onCreate(Bundle icicle) \{ super.onCreate(icicle); getWindow().requestFeature(Window.FEATURE\_INDETERMINATE\_PROGRESS); setContentView(R.layout.adn\_list); mEmptyText = (TextView) findViewById(android.R.id.empty); mQueryHandler = new QueryHandler(getContentResolver()); \} @Override protected void onResume() \{ super.onResume(); query(); \} @Override protected void onStop() \{ super.onStop(); if (mCursor != null) \{ mCursor.deactivate(); \} \} protected Uri resolveIntent() \{ Intent intent = getIntent(); if (intent.getData() == null) \{ intent.setData(Uri.parse("content://icc/adn")); \} return intent.getData(); \} private void query() \{ Uri uri = resolveIntent(); if (DBG) log("query: starting an async query"); mQueryHandler.startQuery(QUERY\_TOKEN, null, uri, COLUMN\_NAMES, null, null, null); displayProgress(true); \} private void reQuery() \{ query(); \} private void setAdapter() \{ if (mCursorAdapter == null) \{ mCursorAdapter = newAdapter(); setListAdapter(mCursorAdapter); \} else \{ mCursorAdapter.changeCursor(mCursor); \} if (mInitialSelection >=0 && mInitialSelection < mCursorAdapter.getCount()) \{ setSelection(mInitialSelection); getListView().setFocusableInTouchMode(true); boolean gotfocus = getListView().requestFocus(); \} \} protected CursorAdapter newAdapter() \{ return new SimpleCursorAdapter(this, android.R.layout.simple\_list\_item\_2, mCursor, COLUMN\_NAMES, VIEW\_NAMES); \} private void displayProgress(boolean flag) \{ if (DBG) log("displayProgress: " + flag); mEmptyText.setText(flag ? R.string.simContacts\_emptyLoading: R.string.simContacts\_empty); getWindow().setFeatureInt( Window.FEATURE\_INDETERMINATE\_PROGRESS, flag ? PROGRESS\_VISIBILITY\_ON : PROGRESS\_VISIBILITY\_OFF); \} private class QueryHandler extends AsyncQueryHandler \{ public QueryHandler(ContentResolver cr) \{ super(cr); \} @Override protected void onQueryComplete(int token, Object cookie, Cursor c) \{//监听QueryComplete事件 if (DBG) log("onQueryComplete: cursor.count=" + c.getCount()); mCursor = c; setAdapter(); displayProgress(false); ? @Override protected void onInsertComplete(int token, Object cookie,//监听InsertComplete事件 Uri uri) \{ if (DBG) log("onInsertComplete: requery"); reQuery(); \} @Override protected void onUpdateComplete(int token, Object cookie, int result) \{//监听onUpdateComplete事件 if (DBG) log("onUpdateComplete: requery"); reQuery(); \} @Override protected void onDeleteComplete(int token, Object cookie, int result) \{//监听DeleteComplete事件 if (DBG) log("onDeleteComplete: requery"); reQuery(); \} \} protected void log(String msg) \{ Log.d(TAG, "\[ADNList\] " + msg); \} \} 再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来![https://blog.csdn.net/jiangjunshow][https_blog.csdn.net_jiangjunshow] [https_blog.csdn.net_jiangjunshow]: https://blog.csdn.net/jiangjunshow/article/details/77338485
相关 android.content包-------AsyncQueryHandler 类介绍: AsyncQueryHandler类实现ContentResolver查询的异步处理 相关子类和构造方法介绍: ![Center][] AsyncQueryH 朴灿烈づ我的快乐病毒、/ 2023年10月16日 18:38/ 0 赞/ 15 阅读
相关 AsyncQueryHandler的使用 AsyncQueryHandler是Handler的子类,文档上说,如果处理ContentProvider相关的内容,不用需要自行定义一套东西, 而可以简单的使用async方式 骑猪看日落/ 2022年08月19日 14:18/ 0 赞/ 82 阅读
相关 Android学习笔记_AsyncQueryHandler的应用 转自:http://www.cnblogs.com/liyuzhao/p/3783595.html 研究AsyncQueryHandler这个类的时候遇到了几 ゞ 浴缸里的玫瑰/ 2022年06月17日 14:07/ 0 赞/ 180 阅读
相关 Android-AsyncQueryHandler 详解【整理】 1,AsyncQueryHandler 简介 AsyncQueryHandler的目的就是为了将查询数据库的操作放到后台执行,当后台数据查询完了以后,再通知界面的更新 拼搏现实的明天。/ 2022年04月18日 00:54/ 0 赞/ 193 阅读
相关 Handler官方范例AsyncQueryHandler源码解析 欢迎转载,但请保留作者链接:[http://www.jianshu.com/p/b7fec0545368][http_www.jianshu.com_p_b7fec054536 迷南。/ 2022年04月18日 00:53/ 0 赞/ 220 阅读
相关 AsyncQueryHandler的使用 AsyncQueryHandler简介: 异步的查询操作帮助类,可以处理增删改(ContentProvider提供的数据) 使用AsyncQueryHandler的场景: 浅浅的花香味﹌/ 2022年04月18日 00:51/ 0 赞/ 141 阅读
相关 AsyncQueryHandler android.content.AsyncQueryHandler继续于android.os.Handler 虽然Handler自己是没另开新 分手后的思念是犯贱/ 2022年03月18日 14:40/ 0 赞/ 119 阅读
还没有评论,来说两句吧...