Android Activity 任务栈

前言

一个 Android 应用中与用户产生交互的一系列 Android 被称为任务,Android 系统使用栈来管理这些 activity,它们的行为如下:

当在桌面点击一个应用图标打开主界面时,如果之前没有打开过这个应用,将会创建一个全新的任务栈,并把主界面的 activity1 作为栈底元素入栈,当用户从主界面依次打开 activity2, activity3 时,它们会被依次压入栈中,此时栈内元素为 activity1, activity2, activity3,用户点击返回键时,activity3将被被执行 finish 操作,同时将会出栈,activity2 恢复,继续点击返回键,直到退回到主界面时,如果再次点击返回键,则应用退出,任务栈被销毁。

不同应用可以指定相同的任务,同一个应用中的 Android 也可存在于多个任务中,还可使用一些选项影响 Android 在任务栈中的行为。更详细的文档可以参考官方指南:

AndroidAPI 指南:任务和返回栈

下面对和任务栈相关的选项和配置进行详细分析:

阅读更多

Android 自定义 View

概述

View 是由视图和属性组成的控件,实现一个 View 的自定义,主要包括定义它自身的尺寸,以及绘制它的内容,并且在自身属性发生改变时能正确更新其绘制的内容。

ViewGroup 是 View 的容器类型,内部可容纳多个 View,并对子 View 的位置进行规划,根据自身特性的不同,子 View 的摆放特点也各不相同。由于 ViewGroup 本身也是 View 的子类,所以 ViewGroup 本身也可作为子View 出现。自定义 ViewGroup 时,更着重于对子 View 位置的处理,并且尺寸由子 View 的尺寸和摆放位置决定,在一些复杂的自定义 View 中,内容的绘制和子 View 位置的处理可能显的同等重要。

阅读更多