网上有关“如何管理Android中Activity的生命周期?”话题很是火热,小编也是针对如何管理Android中Activity的生命周期?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。
管理Android中Activity的生命周期
在一个activity的生命周期中,系统会像金字塔模型一样去调用一系列的生命周期回调函数。Activity生命周期的每一个阶段就像金字塔中的台阶。当系统创建了一个新的activity实例,每一个回调函数会向上一阶移动activity状态。处在金字塔顶端意味着当前activity处在前台并处于用户可与其进行交互的状态。
当用户退出这个activity时,为了回收该activity,系统会调用其它方法来向下一阶移动activity状态。在某些情况下,activity会隐藏在金字塔下等待(例如当用户切换到其他app),此时activity可以重新回到顶端(如果用户回到这个activity)并恢复用户离开时的状态。
根据activity的复杂度,也许不需要实现所有的生命周期方法。但了解每一个方法的回调时机并在其中填充相应功能,使得确保app能够像用户期望的那样执行是很有必要的。如何实现一个符合用户期待的app,我们需要注意下面几点:
使用app的时候,不会因为有来电通话或者切换到其他app而导致程序crash。
用户没有激活某个组件时不会消耗宝贵的系统资源。
离开app并且一段时间后返回,不会丢失用户的使用进度。
设备发生屏幕旋转时不会crash或者丢失用户的使用进度。
只有三个状态是静态的,这三个状态下activity可以存在一段比较长的时间。(其它几个状态会很快就切换掉,停留的时间比较短暂)
Resumed:该状态下,activity处在前台,用户可以与它进行交互。(通常也被理解为"running" 状态)
Paused:该状态下,activity的部分被另外一个activity所遮盖:另外的activity来到前台,但是半透明的,不会覆盖整个屏幕。被暂停的activity不再接受用户的输入且不再执行任何代码。
Stopped:该状态下, activity完全被隐藏,对用户不可见。可以认为是在后台。当stopped, activity实例与它的所有状态信息(如成员变量等)都会被保留,但activity不能执行任何代码。
Android-Android中service与application的生命周期有关系吗
Android设备屏幕由横屏变成竖屏时,实际上当前屏幕中的Activity要经历的过程是:首摧毁当前Activityà重新创建一个Activity来适应屏幕的变化。那么根据Activity的状态变化分析我们可以看出它经历的生命周期应该是:
在这个过程中最有可能让大家产生误解的就是:屏幕状态变化时没看到Activity消失,他实际上确实销毁后又重新重建了。这些都是属于Android的基础知识,推荐你可以去个叫秒秒学的网站上看看,里面有一些相关的课程,希望对你有帮助。
service与application的生命周期有关系的。
在Android中进程按优先级可以分为五类,优先级从高到低排列:
前台进程 该进程包含正在与用户进行交互的界面组件,比如一个Activity。
可视进程 该进程中的组件虽然没有和用户交互,但是仍然可以被看到。
服务进程 该进程包含在执行后台操作的服务组件,比如播放音乐的Service。
后台进程 该进程包含的组件没有与用户交互,用户也看不到 Service。
空进程 没有任何界面组件、服务组件,或触发器组件。
Android系统是进程托管的,也就是说进程都是由系统来管理,系统会按照特定的算来来回收这些进程。在回收中秉承几个原则:
1. 尽量延长进程的生命周期,不到必须的情况下不会回收,因为系统回收进程会影响用户体验
2. 按优先级从低到高进行回收
3. 同等优先级的进程越近使用越晚回收。
通过上面这些解释,进程过一段时间后是会被回收的,但要遵循上面的这些原则,service和application的生命周期有关,只要进程被回收,那么它所占用的所有资源将被回收。
关于“如何管理Android中Activity的生命周期?”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
评论列表(3条)
我是中宝号的签约作者“单于爱景”
本文概览:网上有关“如何管理Android中Activity的生命周期?”话题很是火热,小编也是针对如何管理Android中Activity的生命周期?寻找了一些与之相关的一些信息进行分...
文章不错《如何管理Android中Activity的生命周期-》内容很有帮助