美文网首页Android青年大学习
Android学习之四大组件(一)Activity

Android学习之四大组件(一)Activity

作者: _汉堡_ | 来源:发表于2023-12-05 14:53 被阅读0次

    问题: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即将被销毁。

    这是两个活动生命周期中最典型的情况

    相关文章

      网友评论

        本文标题:Android学习之四大组件(一)Activity

        本文链接:https://www.haomeiwen.com/subject/gjcrgdtx.html