Android笔记-四大组件之Activity

2018-04-28  本文已影响0人  948d307d6ecf

简介

Activity是Android APP开发中最常用、最基础的组件,属于Android四大组件之一,其主要负责UI展示以及与用户交互。

启动

销毁

销毁Activity只需要调用finish() 方法即可。

生命周期

一图胜千言:


Activity生命周期图.png

下面来看下几种常见场景的生命周期方法调用顺序:

启动正常Activity然后返回生命周期时序图.png

通过该时序图,可以看出即将不可见的Activity的onStop()是在即将可见Activity的onResume()方法之后调用的。

启动一个Dialog类型的Acitivty然后返回生命周期时序图.png

在这种情况下,主要区别在于Dialog类型的Activity和普通Activity的不同,前者不会完全遮挡住后面的Activity,所以后面的Activity还是可见的,只是不能与用户交互了而已,因此后面可见但是不可交互Activity的onStop()onRestart()onStart()方法不会被调用。

Dialog类型Activity的最简单的创建方法是指定Activity的theme为Dialog类型即可。

    <activity
        android:name=".activity.lifecycle.LifecycleDialogActivity"
        android:theme="@style/Theme.AppCompat.Light.Dialog.Alert" />
  private void showAlertDialog() {
        new AlertDialog.Builder(this)
                .setTitle("Alert Dialog Title")
                .setMessage("The message content of this alert dialog!")
                .setPositiveButton("ok", null)
                .setNegativeButton("cancel", null)
                .create()
                .show();
    }

AlertDialog的显示与关闭过程中都没有任何生命周期方法调用。

正常情况下横竖屏的切换,其实都是销毁当前Activity重新创建一个新Activity的过程。

启动模式

Android系统里面通过返回栈来管理每个Activity,当一个Activity被创建出来就会进栈,而当一个Activity销毁了就会出栈,并且当前位于栈顶的Activity一定是当前显示的Activity,系统提供了以下四种启动模式,可以根据需要给每个Activity设置不同的启动模式。

面试常考点

  1. onStart()与onResume()的区别
  2. 横竖屏切换的生命周期
  3. Activity启动流程
上一篇 下一篇

猜你喜欢

热点阅读