Servce与Thread使用场景与区别
- Thread是程序执行的最小单元,它是分配CPU的基本单位
线程的生命周期
- 新建(new Thread之后 Thread就进入了新建状态,还有可能进入未启动状态)
- 就绪(线程已经启动了,正在等待CPU分配的时间片,在就绪队列中,排队等候CPU的资源)
- 运行(线程已经获得了CPU的资源,正在执行任务,这时候正在执行run()方法,此时除非此线程自动放弃CPU的资源,或者有更高优先级的线程进入,否则该线程就会一直运行,直到结束)
- 死亡(当线程执行完毕,或者被其他线程杀死的时候,线程就进入了一种死亡状态,这时候线程就不可能进入就绪或者等待的状态)
- 阻塞(由于某种原因导致正在运行的线程让出CPU并暂停自己的执行这时候线程就会进入阻塞状态)
- Thread的缺点(无法控制,由于一般Thread都是Activity创建的,如果Activity销毁时没有结束线程,那么线程就会一直执行下去,这时候该怎么办,就需要使用Servce了)
#Servce
因为Servce创建之后就会一直运行,所以可以在Servce中创建并控制Thread就不用担心Thread无法控制的问题了
- Servce是Android的一种机制,服务是运行在主线程中的,所以Servce中是不可以进行耗时操作的
Servce生命周期
- onCreate(创建服务)
- onStart(开启服务)
- onDestory(销毁一个服务)
- onBind(绑定一个服务)
- onUnbind(解绑一个服务)