Activity的生命周期

说到 Activity 的生命周期,Activity.java文件中很详细的解释了,但是全部都是英文,楼主在这里简单翻译并且总结一下:

1. Activities在系统中会维护一个栈,当一个activity启动的时候,它处于栈顶并且成为running Activity,其他的activity全部位于running Activity之下,当running Activity存在的时候,别的activity始终无法位于栈顶的位置。

2. 一个Activity是唯一的(single), 几乎(Almost)所有的activities和用户之间互相配合(interact),Activity类会为你创造一个可以通过setConteneView来放置UI的window.

我们可以通过一个主题(android.R.attr)或者一个将本Activity植入(embeddedd)到其他的Activity中去(ActivityGroup)来使用它。

3.  一个完整的生命周期:

    onCreate() --> onStart() --> onResume() --> onPause() --> onStop() --> onRestart() --> onDestory()

一个完整的生命周期,从onCreate()开始,到onDestory()结束。

一个可见的生命周期,从onStart()开始,到onStop()停止。在这个过程中用户可以在屏幕上看到此Activity,即使此时它并不是正处于焦点(foreground)或者正在和用户交互(Interacting)。

Activity的生命周期被以上的方法所限制,你可以重写(override)这些方法,所有的Activity子类(subclasses)都需要实现onCreate()方法,用来做初始化(initialize)的工作。一些Activity会实现onPaused() 方法,提交发生改变的数据到数据库,

在onCreate()方法中,你将会使用SetContentView方法去规定(define)你的UI布局资源主页,你将会使用findViewById()方法去检索(retrieve)部件(widgets),这些部件主要用来和用户交互(interact)。

onPaused()方法,用来处理数据的改变,值得注意的是,任何的改变都必须在此时此刻(at this point)被提交,经常使用到android.content.ContentProvider来保存数据(holding the data).

4. Activity的生命周期会经过以下4种状态:

(1)如果处于栈顶,或者在屏幕的最上层,则它目前处于active或者running状态

(2)如果失去焦点,但是仍然可见(有另一个Activity在此Activity之上,非全屏显示),则它当前处于paused状态,处于paused状态的activity仍然存活。它保持(remain)所有的状态和成员信息,并且依附在窗口管理程序上(window manage),但是此activity会在内存不足的情况下被系统killed。

(3)如果一个Activity被另一个完全覆盖(obscured), 它此时处于stopped状态,它仍然保持(remain)所有的状态和成员信息,但是它对于用户来讲不可见,界面已经隐藏,会被系统killed,当内存不足的时候。

(4)综上,如果一个Activity处于paused和stopped状态,系统可以回收这个Activity,也可以简单的killed这个进程。如果它需要重新被使用,则会restared,并且恢复(restore)之前的状态。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值