服务是实现程序后台运行的解决方案
依赖于创建服务时所在的应用程序进程,当进程被杀掉时服务也会停止运行
新建一个类继承Thread,然后重写父类的run()
方法
class MyThread extends Thread{
public void run () {
// 处理具体的逻辑
}
}
然后调用start()
方法来运行
new MyThread().start();
class MyThread implements Runnable(){
public void run(){
// 处理具体逻辑
}
}
启动线程的方法
MyThread myThread = new MyThread();
new Thread(mThread).start;
这种方法是使用匿名类
new Thread(new Runnable(){
public void run(){
// 处理具体的逻辑
}
}).start();
PS:子线程不能直接更新UI
异步消息处理主要分为4个部分组成:Message ,Handler ,MessageQueue ,Looper
Message
Handler
sendMessage()
方法,而发送的消息经过一些列地辗转处理后,最终会传递到Handler的handleMessage()
方法MessageQueue
Looper
loop()
方法后,就会进入到一个无线循环中,每当发现队列中存在一条消息,就会将它取出,并传递到Handler的handleMessage()
方法用于在子线程中对UI进行操作的工具
AsyncTask的基本用法
创建一个子类去继承它
继承时我们可以为AsyncTask指定三个泛型参数
Params
在执行AsyncTask时需要传入的参数,可用于在后台任务中使用