下面不是android四大组件之一的是,Android四大组件之活动

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

活动就是Activity,Android的四大组件之一。用户看到的界面,以及用户与界面的交互,都是通过活动(Activity)来完成的。

所以可以把活动理解为一个与用户交互的界面。

活动基本用法

要启动一个活动,那就肯定需要使用到Intent。在使用Intent的基础上,有两种启动方式。

显式启动

找准你需要启动的活动,然后实现intent就可以直接启动。

Intent intent = new Intent(this.class,ActivityTow.class);

startActivity(intent);

隐式启动

采用一种含蓄的方式,在intent中并不说明你需要启动的是那一个活动,而是让系统自己去找。

因为很少用到,这里就不说了。

活动中传递数据

在使用Intent启动活动的时候,我们可以通过的intent的putExtra方法向下一个活动传递参数。

intent.putExtra(name,value);

通过键值对的方式,传递参数。

新开的活动可以通过getIntent().getStringExtra()等一些重载的函数,获取传递过来的参数。

String bili = getIntent().getStringExtra(“bili”);

活动的生命周期

“咚咚咚,敲黑板,重点来了。”

92542936189375ffc8176a49144ca960.png

生命周期一共有7个回掉函数,表示整个活动从生成到死亡,以及中间的暂停状态中,一共经历了那些生命函数。

一个普通的生命周期为:

onCreate()->onStart()->onResume()->onPause()->onStop()->onDestory()

一共6个部分,还有一个onRestart()在活动暂停后又被唤醒的时候,调用。

下面是对每个生命周期函数详细说明:onCreate():在一个活动初次创建的时候调用,作为启动活动的第一个回调函数,我们一般在其中进行申明绑定UI控件,以及一些数据的初始化的操作。

onStart():表示现在这个活动已经创建成功了,现在正在启动。是一个活动从不可见到可见的一个过度过程,所以Activity已经存在了,但就还是看不见的状态。

onResume():字面意思,“将其唤醒”,表示现在Activity已经是可见的了。与onStart对比的话,可以认为onStart的时候,Activity还是在后台,当到达onResume的时候,新的Activity已经到前台了。

onPause():表示该Activity正在停止,现在Activity仍然是可见的。常用来做一些保存关键数据的操作,onPause中不能进行耗时间的操作,会影响到后面的Activity出现的时间。onPause必须执行完了,新的活动的Activity的OnResume才能执行。

onStop():表示现在该活动已经看不见,表示Activity已经停止,可以做一些轻量级回收工作。与onPause的区别,onPause是还看得见的,onStop是已经看不见了,所以,如果只是以一个对话框启动,或者一个dialog启动,onPause会执行,而onStop不会执行。

onDetory():再该活动销毁前调用,表示该活动马上就要消失了,进行一些资源的回收工作。

onRestart():重新启动一个活动,当一个活动为不可见状态变到重新可见的情况下进行。接下来是onStart(),即重新可见函数。

生命周期常见情况:

活动第一次启动:onCreate->onStart->onResume;

新开了一个活动,然后返回上一个活动:onPause->onStop->onRestart->onStart->onResume

按下home键:onPause->onStop;

home键后重新回来:onRestart->onStart->onResume;

finish方法后:onRestart->onStart->Destroy;

生命周期特殊情况:

资源不足,导致优先级较低的Activity被杀死

横竖屏切换

还有一个onSaveInstanceState()函数,保证在活动结束前,一定能调用,用于储存重要数据。

活动的启动模式

启动模式类别

Android提供的4种Activity的启动模式standard(标准模式)

singleTop(栈顶复用模式)

singleTask(站内复用模式)

singleInstance(单例模式)

在AndroidMainfest.xml中,通过给activity标签指定android:launchMode属性来选择启动模式。

启动模式结构

Activity的管理采用栈的数据结构的方式。先进后出。

97ec6df260e9a4b2385a16f36ae16868.png

4中启动方式

standard:

标准启动模式,每次启动一个Activity压入栈顶。谁启动的Activity,这个Activity就运行在那个Activity所在的栈中。

如果一个Activity中,启动自己本身这个Activity,也会生成一个新的该活动实例。

209854ae6790662d79f28f138dcd0a3d.png

如果在Application和service中启动Activity,因为其没有所谓的栈,使用flag标识。

如:FLAG_ACTIVITY_NEW_TASK标记,创建一个新的栈。

singleTop:

栈顶复用模式,如果新建的Activity就是自己本身的话,就会重新加载该Activity,不会创建新的实例。

c9a672759c7e482a97d68a4bd0ab32f0.png

singleTask:

栈内复用模式,是一种单例模式,即栈内有且只有一个该Activity的实例。

可以在AndroidMainfest.xml中在对activity配置的时候,通过teskAffinity申明需要加载在那一个栈中。

如果指定的栈中,新创建的Activity不存在,则新创建一个,并压入栈中。如果存在,就把该Activity之上的活动全部杀死,直到该Activity置于栈顶。

11b7412d57b592a6a2cc1d32bbf920c1.png

c429da6d47b4cd5a9c4d7aab35456281.png

ece8002a4a9c391a5461634205321e39.png

singleInstance:

单例模式,每一个Activity都在一个新的栈中

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值