Android(安卓)service与线程区别
16lz
2021-01-24
1.Service 是android的一种机制,当它运行的时候如果是Local Service,那么对应的 Service 是运行在主进程的 main 线程上的。如果是RemoteService,那么对应的 Service 则是运行在独立进程的 main 线程上,service和调用者之间的通讯都是同步的(不论是远程service还是本地service),它跟线程一点关系都没有!
2.Thread 的运行是独立于 Activity 的,也就是说当一个 Activity 被 finish 之后,如果你没有主动停止 Thread或者 Thread 里的run 方法没有执行完毕的话,Thread也会一直执行。因此这里会出现一个问题:当 Activity 被 finish 之后,你不再持有该 Thread 的引用,也就是你下次启动的时候,无法控制之前创建的线程,而service则可以。另一方面,你没有办法在不同的 Activity 中对同一 Thread 进行控制。
3.可以在 Service 里注册 BroadcastReceiver,在其他地方通过发送 broadcast 来控制它,这些是 Thread 做不到的。
更多相关文章
- android HandlerThread使用小例
- Android中消息处理机制-Handler剖析
- AsyncTask学习笔记
- onDraw调用和android中Invalidate和postInvalidate的区别
- Android(安卓)JSON使用(二):解读org.json包
- 拨云见日---android异步消息机制源码分析(二)
- Android(安卓)ANR原因分析(基于traces.txt文件),
- Android(安卓)音视频学习系列(一) JNI 从入门到精通
- Android进阶之AIDL的使用详解