huiyidaokeji 2016-06-12 05:56 采纳率: 0%
浏览 1104

汇道Android Activity生命周期是什么?

Android中Activity的生命周期,基本都是翻译Android API,过于笼统。

  • 写回答

2条回答 默认 最新

  • 小孟6601 2016-06-12 06:51
    关注

    activity三种状态
    (1)active:当Activity运行在屏幕前台(处于当前任务活动栈的最上面),此时它获取了焦点能响应用户的操作,属于活动状态,同一个时刻只会有一个Activity处于活动(Active)。
    (2)paused:当Activity失去焦点但仍对用户可见(如在它之上有另一个透明的Activity或Toast、AlertDialog等弹出窗口时)它处于暂停状态。暂停的Activity仍然是存活状态(它保留着所有的状态和成员信息并保持和窗口管理器的连接),但是当系统内存极小时可以被系统杀掉。
    (3)stoped:完全被另一个Activity遮挡时处于停止状态,它仍然在内存中保留着所有的状态和成员信息。只是对用户不可见,当其他地方需要内存时它往往被系统杀掉。
    3、activity七个方法
    onCreate():当Activity第一次被实例化的时候系统会调用,整个生命周期只调用1次这个方法。通常用于初始化设置,为Activity设置所要使用的布局文件,为按钮绑定监听器等静态的设置操作。
    onStart():当Activity可见未获得用户焦点不能交互时系统会调用。
    onRestart():当Activity已经停止然后重新被启动时系统会调用。
    onResume():当Activity可见且获得用户焦点能交互时系统会调用。
    onPause():用来存储持久数据。到这一步是可见但不可交互的,系统会停止动画等消耗CPU的事情。从上文的描述已经知道,应该在这里保存你的一些数据,因为这个时候你的程序的优先级降低,有可能被系统收回。
    onStop():当Activity被新的Activity完全覆盖不可见时被系统调用。
    onDestroy():当Activity(用户调用finish()或系统由于内存不足)被系统销毁杀掉时系统调用,(整个生命周期只调用1次)用来释放onCreate()方法中创建的资源,如结束线程等。
    4、android三个嵌套循环
    (1)Activity完整的生命周期:从第一次调用onCreate()开始直到调用onDestroy()结束。
    (2)Activity的可视生命周期:从调用onStart()到相应的调用onStop()。在这两个方法之间,可以保持显示Activity所需要的资源。如在onStart()中注册一个广播接收者监听影响你的UI的改变,在onStop()中注销。
    (3)Activity的前台生命周期:从调用onResume()到相应的调用onPause()。
    5、BroadcastReceiver广播接收器生命周期
    生命周期只有十秒左右,如果在onReceive()内做超过十秒内的事情,就会报ANR(Application No Response)程序无响应的错误信息。它的生命周期为从回调onReceive()方法开始到该方法返回结果后结束。
    6、Service服务生命周期
    Service完整的生命周期从调用onCreate()开始直到调用onDestroy()结束。
    Service有两种使用方法:
    (1)以调用Context.startService()启动,而以调用Context.stopService()结束。
    (2)以调用Context.bindService()方法建立,以调用Context.unbindService()关闭。
    7、一个activity的启动过程
    (1)第一个Activity的启动顺序:onCreate()——>onStart()——>onResume()
    (2)当另一个Activity启动时:第一个Activity onPause()——>第二个Activity onCreate()——>onStart()——>onResume()——>第一个Activity onStop()
    (3)当返回到第一个Activity时:第二个Activity onPause()——> 第一个Activity onRestart()——>onStart()——>onResume()——>第二个Activity onStop()——>onDestroy()
    每一个Activity都处于某一个状态,对于开发者来说,是无法控制其应用程序处于某一个状态的,这些均由系统来完成。

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题