★Android基础篇-你应该知道的Activity

版权声明:随便转载 共同进步! https://blog.csdn.net/MacaoPark/article/details/79365668

什么是Activity?

Activity是四大主件之一,学习android的时候第一个学习的就是它.一般的一个用户交互页面对应的一个Activity,Activty也是Context的子类,同时实现了window.callback和keyevent.callback,可以处理窗体与用户的交互事件.

接下来说一下Activity的生命周期

先看一下那张神奇的图片(凑合看一下)
这里写图片描述

1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
3.当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
5.用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
6.当前Activity处于被覆盖状态执行onPause/或者后台不可见状态执行onStop方法,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
7.用户退出当前Activity:系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。

Activity的4种启动模式

启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置;
启动模式有4种,分别为standard、singleTop、singleTask、singleInstance;

[1]标准的standard(默认)
[2]singleTop 单一顶部模式,当我们把Activity配置成singleTop启动模式的时候,当我们开启这个Activity的时候,就会检查当前任务栈的栈顶,是否有这个实例存在,如果有我们就不在继续创建,而是直接复用这个实例
[3]singleTask 当我们把Activity配置成singleTask,会检查当前任务栈的栈顶是否有实例开启,如果有实例开启,直接复用这个实例,并且把这个实例上面的其他Activity也清空,当前任务栈只有一个实例存在.
[4]singleinstance 如果把Activity配置成这种启动模式,系统会为这个Activity单独创建一个任务栈,这个Activity在自己的任务栈中存在.

开发中SingTask的应用

可以用来退出整个应用。
将主Activity设为SingTask模式,然后在要退出的Activity中转到主Activity,然后重写主Activity的onNewIntent函数,并在函数中加上一句finish。

一篇对4种启动模式写的很好的博客可以看一下
http://www.cnblogs.com/meizixiong/archive/2013/07/03/3170591.html

猜你喜欢

转载自blog.csdn.net/MacaoPark/article/details/79365668
今日推荐