2018-12-18 Service

        几个月前开始接触安卓开发,一直想要系统学习一次安卓基础知识,却一直被各种事情困扰,这次终于有了时间,项目中最近刚好又需要使用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对象。



2018-12-18 Service_第1张图片

4.使用AsyncTask

封装好的异步消息处理机制。

抽象类。

1. onPreExecute()

2. doInBackhround(Params...)

3. onProgressUpdate(Progress...)

4. onPostExecute(Result)


2018-12-18 Service_第2张图片

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

你可能感兴趣的:(2018-12-18 Service)