??????? 幾個(gè)月前開始接觸安卓開發(fā),一直想要系統(tǒng)學(xué)習(xí)一次安卓基礎(chǔ)知識(shí)锋边,卻一直被各種事情困擾皱坛,這次終于有了時(shí)間,項(xiàng)目中最近剛好又需要使用Service豆巨,那就從這個(gè)開始學(xué)習(xí)吧剩辟。
Service - 后臺(tái)默默的勞動(dòng)者(一)--Service準(zhǔn)備工作
1. Android 多線程
Java多線程
Class MyThread extends Thread {
run(){}
}
Class MyRunnable implements Runnable{
run(){}
}
內(nèi)部類
new MyThread (new Runnable(){
run(){}
}).start();
2.在子線程中更新UI
使用Handler更新
private Handle myHandler = new Handler() {
public void handleMessage(Message msg){
switch (msg.what) {
case 1 :
break;
default :
break;
}
}
}
使用中:
@override
public void onClick(View v) {
switch (v.getId()) {
case R.id.change_text:
new Thread (new Runnable()) {
@Override
public void run() {
Message message = new Message();
message.what = 1;
hacler.sendMessage(message);
}
}.start;
break;
default:
break;
}
}
3.解析異步消息處理機(jī)制
Android異步消息處理主要由四部分組成:Message,Handler往扔,MessageQueue贩猎,looper
1.Message
what, arg1萍膛,arg2吭服,obj
2.Handler
3.MessageQueue
消息隊(duì)列,存放通過Handler發(fā)送的消息蝗罗。每個(gè)線程中只會(huì)有一個(gè)MessageQueue對(duì)象艇棕。
4.Looper
每個(gè)線程中MessageQueue 的管家蝌戒,調(diào)用Looper的loop()方法,就會(huì)進(jìn)入一個(gè)無限的循環(huán)中沼琉,每當(dāng)發(fā)現(xiàn)MessageQueue 中存在一條消息北苟,就會(huì)取出,傳遞到Handler的handlerMessage()方法中打瘪。每個(gè)線程中也只有一個(gè)Looper對(duì)象粹淋。
4.使用AsyncTask
封裝好的異步消息處理機(jī)制。
抽象類瑟慈。
1. onPreExecute()
2. doInBackhround(Params...)
3. onProgressUpdate(Progress...)
4. onPostExecute(Result)
好了桃移,學(xué)的有點(diǎn)累了,今天就到此結(jié)束了葛碧。