• 北大青鸟学士后 大学生的专属课程

大学生就业培训,尽在北大青鸟华工校区

资讯中心

联系我们

当前位置:您现在的位置: 北大青鸟学士后 >> 青鸟知识库 >> Android技术 >> 正文    >

Android组件生命周期

  组件生命周期

  组件的生命周期是指组件从被构造运行开始,直至被销毁的整个时段内,组件状态的变化。

  当组件状态发送变化时,Android系统会调用该组件对象的特定函数进行通知,开发者需要派生实现这些函数,对相关事件进行监听和处理,从而掌握组件的生命周期。

  数据组件管理

  对于只读数据,一般在Activity.onCreate()时进行数据加载,直到组件的Activity.onDestroy()函数调用时再释放。

  对于读写数据,一般在Activity.onCreate()或Activity.onResume时进行数据加载,在Activity.onPause写数据。因为Activity.onPause调用后,组件处于可回收状态,资源紧张时,可回收。

  状态组件

  状态数据是用户与界面组件交互过程产生的临时数据。不会被持久化。状态数据暂存内存,若组件被回收,数据将丢失。

  为此,Android的界面组件提供了事件函数,帮助开发者保存状态数据。当系统将界面切离前台组件(Activity.onPause调用前),调用Activity.onSaveInstanceState,在该函数中,开发者可以将组件的状态写入参数onState中,onState是Bundle类型。

  但Activity.onSaveInstanceState不会每次都调用,如用户点击回退键或者Activity.finish()主动调用时,因为这意味着当前的状态被用户主动放弃。

  如果组件被回收,缓存的数据会在组件界面被重新构造时通过Activity.onCreate()传入。其中的savedInstanceState参数与onState参数对象完全一致。若savedInstanceState为空,说明是一次全新的构造,反之是恢复性构造。

  savedInstanceState对象还可以通过Activity.onRestoreInstanceState()函数传入,开发者也可以在这里进行状态恢复。

  为了降低开发者的负担,Android大部分系统组件实现了状态缓存。在Activity.onSaveInstanceState调用前,界面组件会遍历整个控件树,将各个组件的状态保存下来,等Activity.onRestoreInstanceState()函数调用时进行恢复。

  线程管理

  应用通常采用多线程设计,在后台执行耗时操作。Android组件生命周期没有对多线程提供良好的支持模型,需要开发者自主实现。

  好的管理方案是:

  将线程的句柄信息当做界面组件的状态信息保存下来,如果系统强行回收组件对象,则需要在组件再次构造时,根据缓存的线程的句柄信息找到该线程,从而避免线程泄露。


友情提示:如果您对北大青鸟学士后课程以及学费、开班、就业有疑问,可以点击此处留言,或拨打电话:4000-020-998,我们会有专业课程顾问细心为你解答问题,免费为你定身做前景分析和职业规划!

二维码