Android Service简介

什么是Service

·Service表示“服务”。·Service是Android系统的核心组件之一。Service本质是一个继承了android.app.Service的Java类



注意

·Service没有匹配的用户界面,通常用于后台处理耗时操作。·Service是运行在主线程中的;尽管Service被定位为“用于处理耗时操作”,但是各种耗时操作需要在Service中另外开辟线程来完成。

 -Service由Android系统进行维护。 -每一个Service都应该在AndroidManifest.xml文件中进行注册;

·不允许在主线程中执行耗时德操作。、
优先级高于Activity
·组件可以绑定到Service,实现进程间通信(IPC:Inter Process Communication)
进程优先级
·Android系统力图维护尽可能多的进程,但由于设备性能有限,在动态管理内存的过程中,

 Android系统会经常终止一些优先级低的进程,以释放资源,保证优先级高的进程正常运行。


进程的优先级分类如下(从高到低):

 1.前台进程(Foreground Process)
   (1)存在正在与用户交互的Activity;
   (2)存在Service,且该Service绑定在与用户交互的Activity之上;
   (3)存在运行在前台色Service,即该Service的startForeground()被调用
    (4)存在正在执行核心生命周期方法的Service。包括:onCreate(),onSrart()
,onSrartCommandr();onDestroy();
     (5)存在正在接收广播的广播接收者。
 2.可见进程(Visible Process)
     并无前台组件,但包含用户可见的组件,例如:
(1)处于暂停态的Activity
(2)存在绑定在可见Activity之上的Service
 3.服务进程(Service Process)
  (1)使用startService()方式启动的Service,但该Service并未上升到“前台”,“可见
”的级别
 4.后台进程(Background Process)
    大多表现为onStop()之后的Activity等
 5.空进程(Empty Process)
   不包含任何活动的组件的进程,为了便于缓存组件,以提高下次启动的效率,系统可能暂时保留
它们
 
注意:包含Service的进程只在前三种
 用途

播放音乐,记录地理信息位置的改变,监听某种动作

分类

1.本地服务(Local service)

应用程序内部

startService 对应的停止方法stopService stopSelf stopResult 

bindService 对应的停止方法 unbindService

2远程服务(Remote service)

Android 系统内部的应用程序之间

定义IBinder接口


Start方式特点:

服务跟启动源没有任何联系

无法得到服务对象

Bind方式特点

通过IBinder接口实例,返回一个ServiceConnection对象给启动源

通过ServiceConnection对象的相关方法可以得到Service对象

所以注意:

使用Bind方法绑定服务,只有绑定之后才能解绑定,且Bind之后,退出程序之前必须解绑定才能退出不然会报错,因为它与启动源有关



   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值