Android:-组件生命周期 12

24 篇文章 0 订阅
24 篇文章 0 订阅
  • Activity生命周期
  1. Activity三种状态

(1)active:当Activity运行在屏幕上(处于当前任务活动栈的最上面),此时当前Activity获取了焦点能响应用户的操作,属于活动状态,同一个时刻一个应用只会有一个Activity处于活动状态(Active)。

 

(2)paused:当Activity失去焦点但仍对用户可见(如在它之上有另一个透明的Activity或Toast、AlertDialog等弹出窗口时)它处于暂停状态。暂停的Activity仍然是存活状态(它保留着所有的状态和成员信息并保持和窗口管理器的连接),但是当系统内存极小时可以被系统杀掉,来保证系统的运行。

 

(3)stoped:完全被另一个Activity遮挡时处于停止状态,它仍然在内存中保留着所有的状态和成员信息。对用户不可见,当其他地方需要内存时有可能被系统杀掉。

 

  1. Activity七个生命周期方法

onCreate():

当Activity第一次被实例化的时调用,整个Activity生命周期只调用一次。通常用来初始化变量和设置,为Activity设置所要使用的布局文件,为按钮绑定监听器等需要提前做好准备的操作。

 

onStart():

当Activity可见但尚未获得用户焦点不能交互时调用。

 

onRestart():

当Activity已经停止后,重新被启动时调用。

 

onResume():

当Activity可见并获得用户焦点能交互时调用。

 

onPause():

用来存储持久数据。到这一步是可见但不可交互的,系统会停止动画等消耗CPU的任务。此方法用来保存一些数据,因为这个时候程序的优先级降低,有可能被系统收回。

 

onStop():

当Activity被新的Activity完全覆盖不可见时调用。

 

onDestroy():

当Activity(用户调用finish()或系统由于内存不足)被系统销毁时调用,(整个生命周期只调用一次)需要释放onCreate()方法中创建的资源,如结束线程等。

 

  1. Activity生命周期图

 

  • Service生命周期

根据使用方式的不同,service有两种不太相同的生命周期

  1. 非绑定模式

调用Context.startService()启动,调用Context.stopService()结束。这种情况下的Service是通过其他组件调用 startService()被创建。这种service可以无限地运行下去,必须调用stopSelf()方法或者其他组件调用stopService()方法来停止它。当service被停止时,系统会销毁它,这种service的生命周期为

onCreate()→onStartCommand()→onDestroy()

 

  1. 绑定模式

以调用Context.bindService()方法建立,以调用Context.unbindService()关闭。这种情况下的Service是通过其他组件(一个客户)调用bindService()来创建的。客户可以通过一个IBinder接口和service进行通信。客户可以通过 unbindService()方法来关闭这种连接。一个service可以同时和多个客户绑定,当多个客户都解除绑定之后,系统会销毁service,这种service的生命周期为

onCreate()→onBind()→onUnbind()→onDestroy()

 

service生命周期图

 

  • BroadcastReceiver广播接收器生命周期

调用对象→实现onReceiver→结束

BroadcastReceiver的生命周期很简单,但是有一个需要特别注意的地方,就是它的生命周期只有十秒左右,如果onReceiver()方法中执行了多于十秒的操作,就有可能报出ANR(application no response 应用程序无响应)的错误信息。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值