Android application的重要组件包括:
- Activities
- Intents
- Services
- Content Providers
- Broadcast Receivers
Activities
Activity通常是用户在设备上看到的一个屏幕。一个应用一般都会有多个活动(activities),并且用户在这些活动间来回切换。
为了容易理解,我们用网站和android application类比一下:网站由很多网页组成,android application也由多个activity组成。网站有主页(home page), android application也有一个main activity,并且这个activity是应用显示的第一个屏幕。就像网站会提供页面间的导航,android app也会有;一个网站的页面可以跳转到另一个站点的页面,类似的,android app也可以从一个app的activity访问另一个app的内容。
Activity的生命周期:
Activity life cycle通过Activity Manager管理,这可有效的避免系统资源的浪费。注意,并不是由开发人员自己控制,而是由android系统。
5个状态:
启动(Starting)- 当activity还没有分配资源,进入到内存中时,它是启动状态。当activity在启动时,它会通过一套完整的回调方法,此时,开发人员有机会通过回调方法控制activity。之后,activity进入运行状态。
注意,从启动转至运行,是消耗系统资源最多、花费计算时间最长的过程,这个过程也直接影响电池电量。
运行(Running)- 是当前屏幕和用户交互的状态,也可以说activity在焦点。运行状态的activity有获取支持它尽可能快地运行所需内存和其他资源的优先级。
暂停(Paused)- 当activity不在焦点但是仍然可见时,进入暂停状态。但是,这并不是一个典型的场景。比如,弹出对话框时。
停止(Stopped)- 当activity不可见,但还在内存中时,进入停止状态。系统会保存停止的activity,因为用户很可能再切回到这个activity。同时,系统也会根据需要销毁它。
销毁(Destroyed)- Activity manager决定一个activity不再有用并从内存中移除它。
从图中可以看出,每一种状态都可以通过特定事件转到另一种状态。
走的多了,就有了自己的路!