几个月前开始接触安卓开发,一直想要系统学习一次安卓基础知识,却一直被各种事情困扰,这次终于有了时间,项目中最近刚好又需要使用Service,那就从这个开始学习吧。
Service - 后台默默的劳动者(一)--Service准备工作
1. Android 多线程
Java多线程
Class MyThread extends Thread {
run(){}
}
Class MyRunnable implements Runnable{
run(){}
}
内部类
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.解析异步消息处理机制
Android异步消息处理主要由四部分组成:Message,Handler,MessageQueue,looper
1.Message
what, arg1,arg2,obj
2.Handler
3.MessageQueue
消息队列,存放通过Handler发送的消息。每个线程中只会有一个MessageQueue对象。
4.Looper
每个线程中MessageQueue 的管家,调用Looper的loop()方法,就会进入一个无限的循环中,每当发现MessageQueue 中存在一条消息,就会取出,传递到Handler的handlerMessage()方法中。每个线程中也只有一个Looper对象。

4.使用AsyncTask
封装好的异步消息处理机制。
抽象类。
1. onPreExecute()
2. doInBackhround(Params...)
3. onProgressUpdate(Progress...)
4. onPostExecute(Result)

好了,学的有点累了,今天就到此结束了。
网友评论