m移动端基础知识浅谈

Android,IOS应用程序的生命周期

2017-11-30  本文已影响0人  JTR354

1.1 Android应用程序的生命周期

一个应用程序的启动一般会遵循如下流程:

再来看各种进程的优先级:

  1. 前台进程:如正在前台运行的应用、绑定前台Activity的远程Service、正在运行的BoradcastReceiver
  2. 可见进程:如Activity被部分遮挡的应用
  3. 服务:如未绑定任何可见组件,但在后台运行的Service
  4. 后台进程:如应用被切换到后台,所有的Activity已经不可见
  5. 空进程:已经没有任何存活组件的应用进程,他们的存在仅为了下次更次的启动,当系统资源不足时,这类进程时最先被系统杀死的。

1.2 iOS应用程序的生命周期

The Structure of an App.png

2.1 Activity组件生命周期

Android应用程序显示的永远都是栈顶的Activity。


Back Stack 后退栈
生命周期函数 函数调用时机
onCreate() 当一个Activity对象被创建时调用
onStart() 当刚开始出现Activity界面时调用
onResume() 当该Activity对象完全被显示,可以和用户交互时调用
onPause() 当从一个Activity对象跳到另一个Activity对象时调用
onStop() 当这个Activity对象被另外一个Activity对象完全覆盖时调用
onRestart() 当一个Activity对象再次启动时调用
onDestroy() 当一个Activity对象被销毁时调用
Android官方提供的Activity生命周期图

Activity对象的三种状态:

  1. Resumed状态:此时Activity处于活动状态,可以与用户交互;
  2. Paused状态:此时启动了第二个Activity,当第一个Activity对象并没有消失掉,例如弹窗;
  3. Stopped状态:此时第二个Activity完全覆盖了第一个Activity,这时候第一个Activity对象就处于Stopped状态;

2.2 IOS 的应用程序的状态和多任务

有时系统会从app一种状态切换另一种状态来响应系统发生的事件。例如,当用户按下home键、电话打入、或其他中断发生时,当前运行的应用程序会切换状态来响应。应用程序的状态有以下几种:

App State from Apple Document

大多数发生状态转换时都会调用delegate对象对应的方法来响应app的状态改变。下面汇总了delegate对象的所有方法,当app状态发生转换时,你可能会使用到它们。

参考:
上一篇 下一篇

猜你喜欢

热点阅读