服务并非运行在一个独立的进程中,而是依赖于创建服务时所在的应用程序。当某个应用程序进程被杀掉时,所有依赖于该进程的服务都会结束。
服务并不会开启线程。所有的代码都默认运行在主线程里面。我们需要在服务的内部创建子线程,并在这里执行具体任务。
线程
定义一个线程。启动线程需要new一个实例出来调用start方法。
class MyThread extends Thread{
@Override
public void run(){
//do something
}
}
new MyThread().start(); //start thread
使用Runnable接口的方式来定义一个线程。
class MyThread implements Runnable{
@Override
public void run(){
//do something
}
}
MyThread myThread = new MyThread();
new myThread().start();
或者换一个写法,用匿名类的方式来写
new Thread(new Runnable(){
@Override
public run(){
//do something
}
}).start();