service生命周期

Android Service生命周期浅析

独自空忆成欢 提交于 2020-03-04 23:57:17
Service 作为 Android四大组件之一,应用非常广泛。和Activity一样,Service 也有一系列的生命周期回调函数,我们可以用来监测 Service状态变化,并且在适当的时候执行适当的工作。 Service生命周期图 1. 生命周期状态 Service生命周期流程图: Service生命周期流程图 onCreate(): 首次创建服务时,系统将调用此方法。如果服务已在运行,则不会调用此方法,该方法只调用一次。 onStartCommand(): 当另一个组件通过调用 startService() 请求启动服务时,系统将调用此方法。 onDestroy(): 当服务不再使用且将被销毁时,系统将调用此方法。 onBind(): 当另一个组件通过调用 bindService() 与服务绑定时,系统将调用此方法。 onUnbind(): 当另一个组件通过调用 unbindService() 与服务解绑时,系统将调用此方法。 onRebind(): 当旧的组件与服务解绑后,另一个新的组件与服务绑定, onUnbind() 返回true时,系统将调用此方法。 2. 生命周期方法 在Service的生命周期里,常用的方法有: 手动调用的方法: 手动调用方法 作用 startService() 启动服务 stopService() 关闭服务 bindService() 绑定服务

Android生命周期

若如初见. 提交于 2020-01-24 05:17:37
在 Android 中,多数情况下每个程序都是在各自独立的 Linux 进程中运行的。当一个程序或其某些部分被请求时,它的进程就“出生”了;当这个程序没有必要再运行下去且系统需要回收这个进程的内存用于其他程序时,这个 进程就“死亡”了。可以看出,Android 程序的生命周期是由系统控制而非程序自身直接控制。这和我们编写桌面应用程序时的思维有一些不同,一个桌面应用程序的进程也是在其他进程或用户请求时被创 建,但是往往是在程序自身收到关闭请求后执行一个特定的动作(比如从 main 函数中 return)而导致进程结束的。要想做好某种类型的程序或者某种平台下的程序的开发,最关键的就是要弄清楚这种类型的程序或整个平台下的程序的一般工作 模式并熟记在心。在 Android 中,程序的生命周期控制就是属于这个范畴——我的个人理解:) 在 Android 系统中,当某个 activity调用 startActivity(myIntent) 时,系统会在所有已经安装的程序中寻找其 intent filter 和 myIntent 最匹配的一个 activity,启动这个进程,并把这个 intent 通知给这个 activity。这就是一个程序的“生”。比如我们在 Home application 中选择 “Web browser”,系统会根据这个 intent 找到并启动 Web browser

Android Service 生命周期

99封情书 提交于 2019-12-26 07:04:48
Service概念及用途: Android中的服务,它与Activity不同,它是不能与用户交互的,不能自己启动的,运行在后台的程序,如果我们退出应用时,Service进程并没有结束,它仍然在后台运行,那我们什么时候会用到Service呢?比如我们播放音乐的时候,有可能想边听音乐边干些其他事情,当我们退出播放音乐的应用,如果不用Service,我们就听不到歌了,所以这时候就得用到Service了,又比如当我们一个应用的数据是通过网络获取的,不同时间(一段时间)的数据是不同的这时候我们可以用Service在后台定时更新,而不用每打开应用的时候在去获取。 Service生命周期 : Android Service的生命周期并不像Activity那么复杂,它只继承了onCreate(),onStart(),onDestroy()三个方法,当我们第一次启动Service时,先后调用了onCreate(),onStart()这两个方法,当停止Service时,则执行onDestroy()方法,这里需要注意的是,如果Service已经启动了,当我们再次启动Service时,不会在执行onCreate()方法,而是直接执行onStart()方法。 Service与Activity通信: Service后端的数据最终还是要呈现在前端Activity之上的,因为启动Service时

【Android】15.Service的生命周期

泄露秘密 提交于 2019-12-11 14:03:22
15.Service的生命周期 1.下载素材。 本节素材源码,请在公众号回复" AS1210 "。 2.修改MainActivity类。 public class MainActivity extends AppCompatActivity implements View . OnClickListener , ServiceConnection { //声明变量 private Button btnStart ; private Button btnStop ; private Button btnBind ; private Button btnUnBind ; private Intent intent ; @Override protected void onCreate ( Bundle savedInstanceState ) { super . onCreate ( savedInstanceState ) ; //实例化控件 setContentView ( R . layout . activity_main ) ; btnStart = findViewById ( R . id . btnStart ) ; btnStop = findViewById ( R . id . btnStop ) ; btnBind = findViewById ( R . id

Service的生命周期与Activity生命周期区别

随声附和 提交于 2019-12-01 16:44:04
碰到一面试题 简述 activity/service生命周期 ? 组件的生命周期 应用程序组件都有一个生命周期,从响应Intent的Android实例开始到这个实例被销毁。在这期间,他们或许有效或许无效,有效时或许对用户可见或许不可见。下面我们就来讨论四个基本组件的生命周期,包括在生命周期内的各种状态,以及状态之间的转换。这几种状态可能的结果是:进程让他们停止, 然后实例被销毁。 一、activity生命周期 一个activity有三个基本的状态: @ 当activity在前台运行时(在activity当前任务的堆栈顶),为活动或者运行状态。这时activity会响应用户的操作。 @ 当activity失去焦点但是对用户仍然可见时为paused暂停状态。此时,别的activity在他的上面,透明或者备有被全部覆盖。所以其中一些暂停的activity也可以被显示。一个暂停的activity是处于活动状态的(他维护着所有的状态保存着信息,并且依然附着在窗口管理器)。 @ 如果一个activity完全被另一个activity所掩盖那他会处于stop状态。但仍然保存着原来的状态和信息。然而,如果别的地方需要更多的内存而且这个activity仍一直处于隐藏状态,那么系统有可能会杀死他的进程。 如果一个activity是暂停或者停止状态,系统可以清理他们占用的内存,或者调用finish()方法