Android 启动后台运行程序(Service)

Android 启动后台运行程序(Service),第1张

Android开发中,当需要创建在后台运行的程序的时候,就要使用到Service。Service 可以世改分为有无限生命和有限生命两种。

特别需要注意的是Service跟Activities是不同的(简单来说可以理解为后搜裂判台与前台的区别),例如,如果需要使用Service的话,需要调用startService(),从而利用startService()去调用Service中的OnCreate()和onStart()方法来源拆启动一个后台的Service。

启动一个Service的过程如下:context.startService() ->onCreate()- >onStart()->Service running其中onCreate()可以进行一些服务的初始化工作,onStart()则启动服务。

停止一个Service的过程如下:context.stopService() | ->onDestroy() ->Service stop

接下来的实例是一个利用后台服务播放音乐的小例子,点击start运行服务,点击stop停止服务。ServicesDemo.java(是一个Activity)

除此之外还要在Manifest里面声明服务:(AndroidManifest.xml)

定义Service(MyService.java)

layout文件夹中是main.xml

values 文件夹中是strings.xm

若纯森手机提示应用程序已停止,可能是手机下载的第三方软件或者内部应用程序出现错误,建议您:

1.设定-查找“应用程序管理器”-(全部)-查找无法使用的应用程序-(存储)-清除数据。

2.若是下载的第三方软件,建议卸载该软件重新安装或下载安装此软件其他版本尝试。

3.如果运行内置程序时也会出现已停止的提示,查看手机是否有最新固件版本,将机器升级到最新版本。

4.若仍然无法运行此应用程序,请备份手机中数据(联系人、照片等),然后恢复出厂设置。

若问题依然存在,请您携做迟亩带购机发票、包修卡和机器送到三星服务中心,由专业的售后工程师帮助检测。

如果旦竖还解决不了,那就是您手机系统问题,只能拿到手机售后店找专业人士修理。

AMS主要功能:

AMS是Android中最核心的服务,主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作。还负责启动或杀死应用程序的进程。

WMS主要功能:

为所有窗口分配Surface。

管理Surface的显示顺序、尺寸、位置。

管理窗口动画。

输入系统相关:WMS是派发系统按键和触摸消息的最佳人选,当接收到一个触摸事件,它需要寻找一个最合适的窗口来处理消息。

PWS主要功能:

PMS 用来管理跟踪所有应用APK,包括安装,卸载,解析,控制权限等。谈搭激

SystemServer也是一个进程,包括AMS、PMS、WMS等等。

zygote意为“受精卵“。Android是基于Linux系统的,而在Linux中,所有含袜的进程都是由init进程直接或者是间接fork出来的,zygote进程也不例外。

App进程是用户点击桌面icon时,通过Launcher进程请求SystemServer,再调用Zygote孵化的。

①点击启动一个App,Launcher进程采用Binder IPC向ActivityManagerService发起startActivity请求;

②ActivityManagerService接收到请求后,向zygote进程发送创建进程的请求;

③Zygote进程fork出新的子进程,即App进程;

④App进程通过Binder IPC向sytem_server进程发起绑定Application请求;

⑤system_server进程在收到请求后,进行一系列准备工作后,再通过binder IPC向App进程发送scheduleLaunchActivity请求;

⑥App进程的binder线程(ApplicationThread)在收到请求后,通过handler向主线程发送LAUNCH_ACTIVITY消息;

⑦主线程在收到Message后,通过发射机制创建目标Activity,并回调Activity.onCreate()等方法。

⑧到此,App便正式启动,开始进入Activity生命周期,执行完onCreate/onStart/onResume方法,UI渲染结枝槐束后便可以看到App的主界面。

备注:

Launcher,PMS,Zygote,App进程是三个独立的进程,相互通信就需要使用进程间通信机制。与Zygote通信是使用的socket通信,Launcher,PMS,App进程间使用的是Binder机制。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12570318.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存