Android Hander機制的理解

2021-07-02 19:11:05 字數 1988 閱讀 9520

總以為自己對handler比較了解,但今天發現還是不了解,以後寫**得好好的看看android doc了,這樣才能理解的更深。

一直以為handler.post(runnable)為開啟乙個執行緒,所以出現了一下問題。

我定義了乙個runnable用來實現簡訊的分段讀取:

private

class

subsectionrunnable

implements

runnable

else catch (unsupportedencodingexception e)

} cursor cr = getcontentresolver().query(

uri.parse("content://mms-sms/canonical-addresses"),

new string , "_id=?",

new string , null);

if(cr != null && cr.movetofirst())

else

conversationinfo conversation = new conversationinfo(mrecipient, msnippet, mnumber, msnippetcs, mname, mthreadid);

mconversationinfopreviouslist.add(conversation);

} for( int i = 0; i < mconversationinfopreviouslist.size(); i++) catch (clonenotsupportedexception e)

} mcursor.close();

if(misfirstquery)

message message = new message();

message.what = 2;

boolean flag2 = mgetmmshandler.sendmessage(message);

log.i("xiao", "flag2 = " + flag2);

mtestspeed2.loadendtime();

mtestspeed2.printduration();

mcursor = null;

mtestspeed2.loadbegintime();

mcursor = getcontentresolver().query(threads_uri,

all_threads_projection, "date < " + mdate, null, "date desc limit " + motherquerystep);

} }

public string getcontactnamebyphone(string number) ,

null, null, null );

if(cur != null)

cur.close();

} }

catch(exception e)

return name;

} }

然後定義了乙個handler用來更新介面:

private

class

getmmshandler

extends

handler

} }

但我發現每次都是等所有的簡訊讀取完畢後才會列印幾次handlermessage 222222222222資訊,所以介面更本沒有出現先顯示一些,然後陸續載入的過程,我就很奇怪,為什麼會會是這樣呢,我在mgetmmshandler.sendmessage後加了判斷,看這個訊息是否傳送成功,驗證後是傳送成功了,我就檢視handler的doc,原來post(runnable)是把這個runnable加到當前的訊息佇列中,所以等這個runnable處理完畢後才會處理接受到的多次what為2的訊息。

通知機制和KVO機制

在cocoa touch框架中,觀察者模式的具體應用有兩個,即通知機制和kvo key value observing 模式機制。通知機制 通知機制與委託機制不同的是,通知是一對多的物件之間的通訊,而委託則是一對一物件之間的通訊。歸納一下通知主要有廣播通知 broadcast notificatio...

cookie機制和session機制

一 cookie機制和session機制的區別 具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。同時我們也看到,由於才伺服器端保持狀態的方案在客戶端也需要儲存乙個標識,所以session 機制可能需要借助於cookie機制來達到儲存標識的...

POW機制和DPOS機制

區塊鏈技術隨著位元幣 的飛漲,被越來越多的人所認識。其實在區塊鏈這個社群裡面,一直都分成三個圈子 1 幣圈 大多數人都是從電子加密貨幣開始認識區塊鏈技術的,或者很多人一直停留在幣圈,混跡於各大虛擬幣交易所。2 礦工 這個圈子成分複雜,既有一兩台礦機的愛好者,也有經營大型礦場的老闆。但人數相對幣圈還是...