您的位置:首页 > 移动开发 > Android开发

Android中对Activity相关知识的总结

2016-09-10 19:47 330 查看
从事Android开发有一年多了,也写了几篇无关痛痒的博客,但觉得写的真的很不好,没啥价值。最近几天看到任大神的Android学习路线指南这篇博客,对我触动很大,决定要去写好每一篇博客,并要坚持写下去,believe me。我自认为Android还算学的蛮不错的,但把初级与中级水平需要掌握的知识一对比,吓的我放了一个很响的屁,竟然差这么远!回想一年前刚接触Android,第一本入门书籍就是郭大神的《第一行代码》最近几天又重新仔细看了一遍,感觉收获颇大,也许是有了一定的基础后,再看这些基础性的知识能够理解的更加深刻些吧。废话就不多说了,直接进入今天的主题。结合我实际开发中的项目来说,我觉得理解Android的生命周期实在是太重要了。还是附图。

1.Activity的生命周期总结



1. onCreate():只做一些初始化控件的工作。

2. onStart():activity由不可见变为可见,但仍运行在后台,不能与用户进行交互。

3. onResume():activity由不可见变为可见,运行在前台,已经能与用户进行交互,我们看到的界面就是在这个阶段。

4. onPause():与onStart()方法是相对应的,activity由可见变为不可见,仍运行在前台(在前台显示),不能与用户进行交互。

5. onStop():与onResume()方法是相对应的,此时的activity完全不可见了,运行在后台(有可能用户还会返回这个界面)。

6. onDestroy():activity被销毁之前调用,通常在这个方法中将所有消耗CPU的资源释放掉。

7. onRestart():活动由停止状态变为运行状态时调用。

8. finish():这个方法原来一直被我忽略掉了。只知道调用,却不知道其真正的意义。我还特意去查了它与onDestroy()的区别,其实finish()方法就是使用当前的activity从返回栈中出栈,然后调用此activity的onPause()–>onStop()–>onDestroy()。重写finish()即可看到这个过程

注意:onStart()与onResume()的区别主要是前台与后台,交互与不可交互;onPause()与onStop()的主要区别在于,如果启动的新活动是一个对话框式的活动,那么onPause()会执行,而onStop()并不会执行。

生命周期已经做了几次试验了,就不写这个过程了,可以总结如下几点:

1.启动一个新活动(A):onCreate()–>onStart()–>onResume()。

2.启动另外一个新活动(B):A活动执行onPause()–>onStop(),B活动执行onCreate()–>onStart()–>onResume();

3.当从活动B按下返回键(假设每个活动都重写了finish()方法):B活动finish()–>onPause()–>onStop()–>onDestroy();A活动onRestart()

–>onStart()–>onResume()。

4.当A活动启动的是一个Dialog(假设,只要是一个对话框就行了):此时A活动只调用了onPause()方法,并不会执行onStop()方法,Dialog消失后只会调用onResume()。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: