Android 学习之四大组件(二)——service

简介: 版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/u013132758。 https://blog.csdn.net/u013132758/article/details/49160021 Android 学习之四大组件(二)——service1、什么是ServiceService没有用户界面,运行在后台。
版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/u013132758。 https://blog.csdn.net/u013132758/article/details/49160021

Android 学习之四大组件(二)——service

1、什么是Service

Service没有用户界面,运行在后台。负责处理一些用户看不到的、并且有持续时间的事情。有时候我们退出应用,Service并没有结束,它仍在后台运行,一般在播放音乐,下载数据等情况下会用到Service。

2、service的种类 

service按照不同的方式有不同的分类。
按运行地点:本地服务(Local)、远程服务(Remote)。
按运行类型:前台服务、后台服务。
按使用方式:startService启用的服务、BindService启用的服务、两者同时启用的服务。

3、service与Tread的区别

(1) Thread:Thread (线程)是程序执行的最小单元,它是分配CPU的基本单位。可以用 Thread 来执行一些异步的操作。

(2)Service:Service 是android的一种机制,当它运行的时候如果是Local Service,那么对应的 Service 是运行在主进程的 main 线程上的。如:onCreate,onStart 这些函数在被系统调用的时候都是在主进程的 main 线程上运行的。如果是Remote Service,那么对应的 Service 则是运行在独立进程的 main 线程上。因此请不要把 Service 理解成线程,它跟线程半毛钱的关系都没有!

举个例子: 如果你的 Th r ead 需要不停地隔一段时间就要连接服务器做某种同步的话,该 Th r ead 需要在 Activity 没有sta r t的时候也在运行。这个时候当你 sta r t 一个 Activity 就没有办法在该 Activity 里面控制之前创建的 Th r ead。因此你便需要创建并启动一个 Se r vice ,在 Se r vice 里面创建、运行并控制该 Th r ead,这样便解决了该问题(因为任何 Activity 都可以控制同一 Se r vice,而系统也只会创建一个对应 Se r vice 的实例)。

4、在 AndroidManifest.xml 里 Service 元素的常见选项

android:name  -------------  服务类名

android:label  --------------  服务的名字,如果此项不设置,那么默认显示的服务名则为类名

android:icon  --------------  服务的图标

android:permission  -------  申明此服务的权限,这意味着只有提供了该权限的应用才能控制或连接此服务

android:process  ----------  表示该服务是否运行在另外一个进程,如果设置了此项,那么将会在包名后面加上这段字符串表示另一进程的名字

android:enabled  ----------  如果此项设置为 true,那么 Service 将会默认被系统启动,不设置默认此项为 false

android:exported  ---------  表示该服务是否能够被其他应用程序所控制或连接,不设置默认此项为 false


相关文章
|
1月前
|
XML 缓存 Android开发
Android开发,使用kotlin学习多媒体功能(详细)
Android开发,使用kotlin学习多媒体功能(详细)
96 0
|
2月前
|
设计模式 Android开发
[Android 四大组件] --- BroadcastReceiver
[Android 四大组件] --- BroadcastReceiver
33 0
|
3月前
|
Android开发 开发者
什么是Android Jetpack,它包括哪些组件?
什么是Android Jetpack,它包括哪些组件?
39 0
|
2月前
|
数据可视化 Android开发
[Android 四大组件] --- Service
[Android 四大组件] --- Service
24 0
|
2月前
|
Android开发
[Android 四大组件] --- Activity
[Android 四大组件] --- Activity
22 1
|
2月前
|
存储 数据库 Android开发
安卓四大组件是什么?
安卓四大组件是什么?
|
3月前
|
开发框架 物联网 数据库
89个android学习样例源码
89个android学习样例源码
76 0
|
3月前
|
Java Android开发 C++
2023安卓逆向 -- JNI学习(从开发到反编译)
2023安卓逆向 -- JNI学习(从开发到反编译)
21 0