日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > AsyncQueryHandler異步操作數(shù)據(jù)庫的使用和源碼解析

AsyncQueryHandler異步操作數(shù)據(jù)庫的使用和源碼解析

來源:程序員人生   發(fā)布時(shí)間:2016-09-03 15:45:03 閱讀次數(shù):2981次

1.AsyncQueryHandler的作用:

異步的查詢操作幫助類,它可以處理增刪改查。固然也能夠使用ContentProvider去操作數(shù)據(jù)庫。這在數(shù)據(jù)量很小的時(shí)候是沒有問題的,但是如果數(shù)據(jù)量大了,可能致使UI線程產(chǎn)生ANR事件。固然也能夠?qū)憘€(gè)Handler去做這些操作,只是每次使用ContentProvider時(shí)都要再寫個(gè)Handler,必定下降了效力。因此API提供了1個(gè)操作數(shù)據(jù)庫的通用方法。它提供:startInsert,startDelete,startUpdate,startQuery這4個(gè)操作,并提供相對(duì)應(yīng)的onInsertComplete,onDeleteComplete,onUpdateComplete,onQuerytComplete4個(gè)方法,以供操作完數(shù)據(jù)庫落后行其它的操作,這4個(gè) onXXXComplete方法都是空實(shí)現(xiàn),以便我們只需要去實(shí)現(xiàn)我們關(guān)注的操作。
 

2.AsyncQueryHandler的使用方法:

1.需要繼承AsyncQueryHandler類,并提供onInsertComplete方法的實(shí)現(xiàn)(可以實(shí)現(xiàn)任何1個(gè)或多個(gè),固然也能夠1個(gè)也不實(shí)現(xiàn),如果你不關(guān)注操作數(shù)據(jù)庫的結(jié)果),在的實(shí)現(xiàn)中做1些對(duì)數(shù)據(jù)庫操作完成的處理。
2.使用時(shí)直接調(diào)用startQuery(或其他4個(gè)中的任何1個(gè))方法便可。傳入的通用參數(shù)以下:
token,1個(gè)令牌,需要跟onQueryComplete方法傳入的1致。(固然也能夠不1致,一樣在數(shù)據(jù)庫的操作結(jié)束后會(huì)調(diào)用對(duì)應(yīng)的onQueryComplete方法 )。
cookie,你想傳給onQueryComplete方法使用的1個(gè)對(duì)象。(沒有的話傳遞null便可)。
Uri uri(進(jìn)行查詢的通用資源標(biāo)志符)。
projection 查詢的列
selection  限制條件
orderBy 排序條件

3.使用處景:

異步操作數(shù)據(jù)庫,在主線程回調(diào)更新ui.
要注意的是,1般在查詢本地的利用的數(shù)據(jù)的時(shí)候要去采取CursorAdapter。


4、AsyncQueryHandler內(nèi)部實(shí)現(xiàn)

AsyncQueryHandler類封裝了調(diào)用者線程與工作線程的交互進(jìn)程。交互的主體是兩個(gè)Handler,1個(gè)運(yùn)行在調(diào)用者線程中,1個(gè)運(yùn)行在工作者線程中。通過提供onXXXComplete的回調(diào)接口,實(shí)現(xiàn)事件的完成處理。
API中提供
startInsert,
startDelete,
startUpdate,
startQuery4種方法,并有響應(yīng)的onXXXComplete()方法.于對(duì)應(yīng)的4個(gè)onXXXComplete()方法都是空實(shí)現(xiàn),因此我們完成相應(yīng)調(diào)用落后行后續(xù)其他的操作. 

mWorkerThreadHandler是在工作線程中的handler,

AsyncQueryHandler 本身也是個(gè)handler,是在主線程中

public abstract class AsyncQueryHandler extends Handler

if (sLooper == null) { HandlerThread thread = new HandlerThread("AsyncQueryWorker"); thread.start(); sLooper = thread.getLooper(); } } mWorkerThreadHandler = createHandler(sLooper);

發(fā)起操作以后,從主線程通過handler拋到工作線程,工作線程在非主線程完成相干數(shù)據(jù)庫操作,將結(jié)果拋回主線程


5、簡單代碼示例

private void startQuery() { Uri uri = Sms.CONVESATION_URI; mQueryHandler.startQuery(0, null, uri, CONVERSATION_PROJECTION, null, null, "sms.date desc"); } // 寫1個(gè)異步查詢類 private final class QueryHandler extends AsyncQueryHandler { public QueryHandler(ContentResolver cr) { super(cr); } @Override protected void onQueryComplete(int token, Object cookie, Cursor cursor) { super.onQueryComplete(token, cookie, cursor); // 更新mAdapter的Cursor mAdapter.changeCursor(cursor); } }




歡迎掃描2維碼,關(guān)注公眾號(hào)



生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 精品一区久久 | 欧美视频一区二区 | 午夜在线免费观看视频 | 色综合精品 | 中文字幕日韩专区 | 亚洲成人网在线 | 欧美艹逼 | 麻豆精品91 | 国产精品伦一区二区三级视频 | 久久久久国产精品人 | 国产精品一区二区三区久久 | 欧美日韩精品在线 | 午夜精品久久久久 | 天堂中文在线视频 | yw193.com尤物在线| 亚洲成人av一区二区 | 精品伦精品一区二区三区视频 | 超碰在线97国产 | 日韩欧美视频一区二区 | 99久久精品国产麻豆演员表 | 欧美日本三级 | 精品久久福利 | 黄色成年人网站在线观看 | 国产三级在线播放 | 国产视频在线一区二区 | 夜噜噜久久国产欧美日韩精品 | 国内av毛片| 国产一区二区三区精品毛片 | 韩国日本美国免费毛片 | 欧美福利一区 | 午夜久久av | 中文字字幕在线中文 | 手机看av网站 | 久久精彩视频 | 亚洲欧洲精品在线 | 欧美日一区二区 | 91精品国产综合久久久亚洲 | 一区二区三区日韩欧美 | 久久久青草婷婷精品综合日韩 | 久久国产精品一区二区三区 | 色片免费看|