安卓四大组件之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的状态

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的任务栈

  1. standard(标准模式):栈结构,先进先出

  2. singleTop(单一栈顶):栈顶存在的activity不会被创建,调用onNewIntent();

  3. singleTask(单一任务):栈中存在的activity不会被创建,调用onNewIntent();并移除其顶部的所有其他activity

  4. singleInstance(单例):一个栈只有一个activity

上一篇下一篇

猜你喜欢

热点阅读