Activity的生命周期(2017年11月13日)

1、认识AndroidManifest.xml

 

 

 

2Activity的生命周期

Activity的生命周期是指什么?

创建Activity到销毁Activity的整个周期。

在这期间会发生什么?

1layout如何显示出来?

android操作系统实时绘画出来。

2)如果在显示的过程中,由用户在操作,那又如何显示?

有操作的是当前界面,也有切换界面,甚至切换程序。对显示的压力是不一样。

为什么要对Activity设置生命周期?

界面会切换。android操作系统为了提高切换界面的效率以及操作系统的效率,引入了Activity的生命周期。

Activity的生命周期分为哪几个阶段?

4个状态:

运行状态:能看见且能操作

【举例】直接运行一个app,当前activity就进入运行状态。

 

 

 

暂停状态:能看见不能操作

【举例】点击按钮,显示一个AlertDialog。背景为当前Activity,这个Activity就是一个Pause状态。

 

 

 

【代码】

activity_main.xml

 

 

 

MainActivity.java

 

 

 

 

停止状态:不可见、不能操作,但依然存在。在内存中继续保留。

从一个Activity进入另一个Activity,那么前面的Activity就会进入停止状态。

销毁状态:废弃,从内存中删除。

系统内存不够时,且这个Activity也不再使用,系统就会销毁这个Activity。或者强制移除。

7个回调方法(用于开发者介入Activity的生命周期):onCreate()onStart()onResume()onPause()onStop()onDestroy()

【举例】使用7个回调观察Activity的生命周期。

回调方法执行的流程:

1)打开一个Activity

onCreateàonStartàonResume

2)从已经打开的Activity回到android的桌面,当前activity回调方法的执行过程:

onPauseàonStop

3Android桌面状态,打开任务栏列表,从任务栏列表中删除当前任务。

onDestroy

4app已打开,但是用户已经切换到android桌面,此时调出任务栏,选中app,恢复到开启状态。

onRestartàonStartàonResume

【代码】

 

 

 

 

 

【训练】目标:执行生命周期回调方法onPause,但不执行onStop

1)进入下一个Activity,这个新的Activity一定是透明的,目的是让第一个Activity依然能够看见。但是不能操作。

2)启动第二个Activity,第一个进入暂停状态,并没有进入停止状态。

步骤:

1)创建第二个Activity为透明背景的窗体。

1)创建透明背景颜色

2)创建透明窗体的theme

3)在第二个activity上引用透明窗体窗体主题。(不是layout透明,而是整个窗体透明)

2)在第一个界面上设置按钮,让按钮点击可以跳转到第二个Activity:第一个Activity就进入了Pause状态。

【代码】

项目结构:

 

 

 

colors.xml

 

 

 

styles.xml

 

 

 

androidManifest.xml

 

 

 

MainActivity.java

 

 

 

 

 

 

 

 

 

测试:

 

 

 

日志:

 

 

 

 

posted @ 2021-03-30 14:25  三生石头花  阅读(114)  评论(0编辑  收藏  举报