问题:Activity需要知道什么
先说答案:
生命周期、Intent、manifest、启动模式
Intent:
Intent是 Android 中用于不同组件间通信的一个重要机制。你可以使用Intent启动新的Activity,也可以通过Intent向其他组件传递数据。
Manifest:
在 AndroidManifest.xml 中声明Activity是必须的,这样系统才能识别并且正确地管理它。
启动模式:
Android学习之启动模式
Activity有7个生命周期
onCreate()
onStart()
onResume()
onPause()
onStop()
onRestart()
onDestroy()
详解
onCreate(Bundle savedInstanceState)
是生命周期的起始点,用于activity的初始化操作,比如调用setContentView来加载界面的布局资源,初始化成员变量
savedInstanceState (保存之前的状态)单独讲
onStart()
当 Activity 对用户变得可见时调用。
这个方法在 Activity 进入前台但还未开始与用户交互之前被调用。
onResume()
当 Activity 准备好与用户交互时调用,此时 Activity 位于栈顶,并开始活跃状态。
这是保持用户当前状态更新的好地方,例如开始动画,或者通过注册监听器等方式开始可以影响用户界面的操作。
onPause()
当系统准备启动或恢复另一个 Activity 时调用。
这通常是提交未保存的更改到持久数据,停止动画和其他可能影响用户的事情。
同时,后续操作应该尽快完成,因为接下来的 onResume() 或 onStop() 将很快被调用。
onStop()
当 Activity 对用户不再可见时调用,可能是因为一个新的 Activity 启动了,或者是因为 Activity 正在被销毁。在这个方法中,应该释放或调整那些对用户不可见时不需要的资源。
onRestart()
用户按下返回键从另一个 Activity 返回到当前的 Activity。
用户从最近任务列表中选择了当前的 Activity。
onRestart()方法的存在使得开发者有机会在Activity重新开始前执行特定的恢复操作,这通常是继续之前被onStop()方法暂停的操作。
紧接着 onStart() 方法会被调用
ondestroy()
当 Activity 被销毁时调用。
这里可以取消一些监听事件或者回调事件,防止内存泄漏
这可以是因为 Activity 正在结束,或者系统在配置更改后暂时销毁 Activity 以后重建。
当活动A启动活动B时,活动A和活动B的生命周期会依次经历以下阶段:
活动A启动活动B:
A: onPause() - 活动A开始暂停。
B: onCreate() - 活动B开始创建。
B: onStart() - 活动B对用户可见。
B: onResume() - 活动B准备好与用户交互,并获取焦点。
A: onStop() - 活动A完全停止且不再对用户可见(如果活动B是透明或不是全屏,则活动A可能不会调用onStop())。
用户从活动B返回活动A:
B: onPause() - 活动B开始暂停。
A: onRestart() - 如果活动A被停止了,它将重新开始。
A: onStart() - 活动A对用户重新可见。
A: onResume() - 活动A准备好再次与用户交互,并获取焦点。
B: onStop() - 活动B完全停止且不再对用户可见。
B: onDestroy() - 活动B即将被销毁。
这是两个活动生命周期中最典型的情况
网友评论