结合进程类别对Activity各个状态与方法的理解

一个安卓应用程序里的所有进程可以分为五类(按重要程度递减排列):

前台进程:显示在屏幕中、正在与用户进行直接交互的进程,具有焦点,一般不会被系统释放掉。

可见进程:同样显示在屏幕中,但是并没用和用户进行直接交互,比如一个进程运行时弹出了一个对话框,用户在和对话框进行交互的时候,这个进程就变为可见进程。

服务进程:拥有service服务的进程,一般在后台为用户服务,比如音乐播放器的播放。在系统内存接近崩溃,为了使前台进程可以继续工作时会将此类进程释放。

后台进程:对用户作用不大,内存接近崩溃时很大几率会中断此类进程。

空进程:为缓存机制而存在,对用户没有意义,释放内存时的首选。


下面对Activity的各种状态与方法进行整理说明:

图中七个矩形代表在Activity中会被系统自动调用的方法,带底色的圆角矩形代表Activity的重要状态。

一个Activity在第一次运行的时候,会依次调用onCreate(),onStart(),onResume()三个方法,区别于其他两个方法的是,onCreate()方法只会被调用一次,而onStart(),onResume()会伴随着Activity状态的切换进行多次调用。

一个Activity在前台运行时,可能会被其他突发事件遮挡而进入pause状态,比如玩游戏时突然来了一个电话,或者应用程序弹出对话框等。只要这个Activity没有获得焦点,但又是一个可见进程时,它就处于pause状态,进入pause状态时,系统会自动调用onPause()方法。当Activity重新获得焦点时,会自动调用onResume()方法。

而当一个Activity被彻底阻挡,不再出现在屏幕中时,比如用户按下了Home键,onStop()方法就被调用,进入停止状态。在onStart()和onStop()之间的状态Activity都是可视的。在这两个方法之间可以保持需要的资源,这些资源通常在onStop()方法中释放。

最后一个Activity被销毁时,onDestroy()方法被调用,释放所有资源。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值