Andorid-Activity生动概解&用法&常见问题汇总

1.何为活动?

Activity 活动:Android四大组件之一,它是一种包含用户界面的组件,主要用于和用户进行交互。通俗化理解为提供可视化界面,和电脑系统的可视化界面差不多。
也就是我们在App中的可视化界面部分,在活动内部承载了许多控件,例如按钮,文本框等等。
一般来说,在一个Andorid程序中,可以包含零或多个活动,但是几乎没有哪个Android程序是不包含活动的,除非你不想看见它

2.活动的生命周期

我们在使用Android App的时候是否有过以下体验:

  • 打开App出现一个页面
  • 点击页面内按钮跳转到新页面
  • 点击返回返回到上一个页面
  • 点击返回无法返回到上一页面再点一次程序关闭
    实际上这些操作内就包含了活动的各个生命周期以及活动状态,接下来我们对活动的生命周期做一个分析。当我们掌握了Android的生命周期后,就可以写出更流畅和资源使用更合理的程序。

2.1活动管理:返回栈

在使用App的时候,我们会发现界面是一层一层的,点一下返回,界面就会回到上一层,或者直接回到主页面。在Android中是用任务来管理活动的,任务就是一个存放在栈中的活动的集合。这个栈的名称叫返回栈。
顾名思义,一个以栈为基础的任务,它的运行机制就是出栈入栈。
当我们启动一个活动的时候
在这里插入图片描述
这个活动就压到栈里并且处于栈顶的位置
在这里插入图片描述
然后当我们再次产生新的活动的时候,新入的活动入栈,也处于栈顶位置
在这里插入图片描述
始终是显示栈顶的活动
在这里插入图片描述
当我们点击Back或者直接在程序跳转活动的时候销毁活动,那么处于栈顶的活动就会出栈,新开启的活动重新进入栈顶,程序显示给我们的可视界面总是栈顶的那个活动。也就是图中的尾巴根儿
在这里插入图片描述

2.2活动状态

活动具有四个状态:
- 运行状态:该状态就是活动处于栈顶的状态,用户可视的界面都是运行状态,在这个状态下,最好不要轻易的销毁这个页面,谁也不想用着用着页面突然没了吧.(狗头.jpg)

- 暂停状态: 处于活动的暂停状态不处于栈顶,但仍然可见。在这种状态下的活动是暂停的。有一些不会占满屏幕的活动,例如一个活动形式的对话框或者一个活动形式的弹出页面。两个活动同时处于视图中,这时候这个活动就处于暂停状态。
- 停止状态: 这个活动对应的就是被压入栈不处于栈顶位置的活动,除了暂停状态下的特殊状态的活动。
- 销毁状态: 销毁状态就是处于出栈的活动,gameover

2.3活动的生命周期

活动的生命周期分为七个环节:

  • onCreate() 创建活动阶段
  • onStart() 启动活动阶段
  • onResume()交互阶段
  • onPause()暂停阶段
  • onStop()停止阶段
  • onDestroy()销毁阶段
  • onRestart()重新启动阶段

可以用游戏地下城与勇士来举个小例子来理解这几个阶段:
1.onCreate()
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200315005
2.onStart()
在这里插入图片描述
3.onReaume()
在这里插入图片描述
4.onStop()
此时处于列表中的其他角色.jpg
5.onDestroy()
在这里插入图片描述
6.onRestart()
登录列中中的其他角色.gif(滑稽)

相信到这里很多人就理解活动的七个环节了。如果还有疑问可以看这个
在这里插入图片描述

3.如何使用活动

3.1创建一个活动

创建活动很简单,我们只需要在项目名称处右键找到它
在这里插入图片描述或者根据需求选择红框下方的选项即可。在这里我们创建一个EmptyActivity为他命名为NormalActivity,让我们来看看都生成了那些文件
1.在这里插入图片描述这个文件用来完成我们想实现的逻辑部分,也就是各种功能的逻辑实现环节。
2.在这里插入图片描述这里用来实现视图。
安卓的一个独特之处就在于将视图和逻辑分开。
在这里插入图片描述
关系就类似于…这样吧…

当然我们不要忘记了这里还有NormalActivity的身影
在AndoridMainfest.xml文件中可以找到它

        <activity android:name=".NormalActivity" />
        <activity android:name=".MainActivity">

它就是在这里被注册的,只有它被注册了,这个司机才允许上路

3.2 Layout解析

在Layout下,我们目前知道这些区域便可以很好的完成一些简单的任务
左上角为控件区,提供了丰富的控件来实现我们想实现的功能,可以直接以拖拽的形势将控件拖入到可视化界面内,左下角就会生成一个目录来表明目前的逻辑结构。右上角的部分用于切换代码显示Layout、或者显示可视化界面或者两者都显示。使我们的开发更直观便捷。
在这里插入图片描述是不是很方便!我们可以来看一下布局的代码对代码进行分析:

<?xml version="1.0" encoding="utf-8"?>  //版本  编码方式
<androidx.constraintlayout.widget.ConstraintLayout //代表了最外围的主要布局是什么,这里面是constarintlayout布局
xmlns:android="http://schemas.android.com/apk/res/android" //目前先不解释,以后用到在解释
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"      //表示控件宽度和父元素一样宽,也就是布满横向的像素
    android:layout_height="match_parent"     //同上  
    tools:context=".NormalActivity">    <
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值