Activity

Activity是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器)之一。

Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务。

Activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,可以通过setContentView(View)来显示指定控件

在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。

1.我们知道Activity有四种状态:

  1)Active/Running(运行状态):它在屏幕最前端,Activity处于栈顶(可见状态同时与用户交互)

  2)Paused(暂停状态):可见但不可交互(就是说当Activity失去焦点的时候,会被一个新的非全屏的Activity挡住

              只是说Activity失去了与用户交互的权利,但其它仍然存在,只有系统内存不足,才可能被系统回收)

  3)Stopped(停止状态):用户看不到当前界面,也无法与用户进行交互 完全被覆盖.

  4)Killed(销毁状态):当前界面被销毁,等待这系统被回收

eg.当一个 Activity 实例被创建、销毁或者启动另外一个 Activity 时,它在这四种状态之间进行转换,这种转换的发生依赖于用户程序的动作。下图说明了 Activity 在不同状态间转换的时机和条件:

如上所示,Android 程序员可以决定一个 Activity 的“生”,但不能决定它的“死”,也就是说程序员可以启动一个 Activity,但是却不能手动的“结束”一个 Activity。当你调用 Activity.finish()方法时,结果和用户按下 BACK 键一样:告诉 Activity Manager 该 Activity 实例完成了相应的工作,可以被“回收”。随后 Activity Manager 激活处于栈第二层的 Activity 并重新入栈,同时原 Activity 被压入到栈的第二层,从 Active 状态转到 Paused 状态。例如:从 Activity1 中启动了 Activity2,则当前处于栈顶端的是 Activity2,第二层是 Activity1,当我们调用 Activity2.finish()方法时,Activity Manager 重新激活 Activity1 并入栈,Activity2 从 Active 状态转换 Stoped 状态,Activity1. onActivityResult(int requestCode, int resultCode, Intent data)方法被执行,Activity2 返回的数据通过data参数返回给 Activity1。

2.Activity的生命周期:(正常情况下)


  oncreate()->onstart()->onResume()->onRestart()->onPouse()->onStop()->onDestory()

3.Activity的生命周期:(异常情况下)

详细讲解:https://blog.csdn.net/daxiong25/article/details/80745697

//保存当前的Activity的状态和信息

//存储数据,以便调用,数据恢复

Activity中onSaveInstanceState()和onRestoreInstanceState()

//系统传入参数一定不能为空,进行outStart的非空判断,传入Bundle参数可能为空

onSaveInstanceState(Bundle outState):

Activty的横竖屏切换(生命周期)onPause()->onStop()->onDestory()->onStart()->onCreate()->onResume()

Activity栈

Android 是通过一种 Activity 栈的方式来管理 Activity 的,一个 Activity 的实例的状态决定它在栈中的位置。处于前台的 Activity 总是在栈的顶端,当前台的 Activity 因为异常或其它原因被销毁时,处于栈第二层的 Activity 将被激活,上浮到栈顶。当新的 Activity 启动入栈时,原 Activity 会被压入到栈的第二层。一个 Activity 在栈中的位置变化反映了它在不同状态间的转换。Activity 的状态与它在栈中的位置关系如下图所示:


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容