安卓四大组件之Activity
2020-10-19 本文已影响0人
咸鱼飞起来啦
一、Activity简介
安卓四大组件之一,Activity是Context的子类,同时实现了window.callback和
keyevent.callback所以可以与用户进行事件交互。
常见的activity子类:FragmentActivity, ListActivity, TabActivity等
二、Activity生命周期
image(1)onCreate()
这个方法会经常见到,因为每个活动中都会重写这个方法,它会在活动第一次被创建的时候调用,应该在这个方法中完成活动的初始化操作,比如说加载布局、绑定事件等。
(2)onStart()
这个方法在活动由不可见变为可见时调用。
(3)onResume()
这个方法在活动准备好和用户进行交互的时候调用,此时的活动一定位于返回栈的栈顶,并且处于运行状态。
(4)onPause()
这个方法在系统准备去启动或者恢复另一个活动的时候调用。我们通常会在这个方法中将一些消耗 CPU 的资源释放掉,以及保存一些关键数据,但这个方法的执行速度一定要快,不然会影响到新的栈顶活动的使用。
(5)onStop()
这个方法在活动完全不可见的时候调用。它和onPause()方法的主要区别在于,如果启动的新活动是一个对话框式的活动,那么onPause()方法会得到执行,而onStop()方法并不会执行。
(6)onDestroy()
这个方法在活动被销毁之前调用,之后活动的状态将变为销毁状态。
(7)onRestart()
这个方法在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了。
三、Activity的状态有哪些
-
前台Activity
-
可见Activity
-
后台Activity
-
空进程
对应进程的状态:
-
前台进程
-
可见进程
-
服务进程
-
后台进程
-
空进程
四、如何保存Activity的状态
onSaveInstanceState(Bundle); 将数据存到bundle对象中
onCreate(Bundle); 将数据取出来
五、两个Activity间跳转会调用哪些方法
如果activity不是透明的:onPause(); onStop();
如果activity是透明的:onPause();
六、横竖屏切换时Activity会调用哪些方法
AndroidManifest.xml文件配置
android:configChanges="orientation|keyboardHidden|screenSize", 切屏时只会调用
onConfigurationChanged方法,否则会重新调用一边生命周期方法
七、将Activity设置成窗口模式
android:theme="@android/Theme.Dialog"
八、Activity的任务栈
-
standard(标准模式):栈结构,先进先出
-
singleTop(单一栈顶):栈顶存在的activity不会被创建,调用onNewIntent();
-
singleTask(单一任务):栈中存在的activity不会被创建,调用onNewIntent();并移除其顶部的所有其他activity
-
singleInstance(单例):一个栈只有一个activity