Android开发:Activity与Fragment生命周期详解

需积分: 0 0 下载量 76 浏览量 更新于2024-08-04 收藏 447KB DOCX 举报
"19151633_应宇杰_Android期末文档1" 在Android应用程序开发中,Activity是用户界面的主要组件,它代表了用户可以与之交互的单个屏幕。理解Activity的生命周期至关重要,因为它决定了Activity何时以及如何进行资源的创建、更新和释放。以下是关于Activity生命周期的详细解释: 1. 启动Activity:当一个新的Activity启动时,系统首先调用onCreate()方法,这是Activity生命周期的第一个回调,用于进行初始设置,如初始化视图、设置布局等。接着调用onStart()方法,Activity开始变得对用户可见,但还没有完全显示。最后调用onResume()方法,此时Activity完全可见并开始接收用户输入。 2. 当前Activity被其他Activity覆盖或被锁屏:系统会调用onPause()方法,这个阶段Activity仍然部分可见,但不再接收大部分用户输入。锁屏或新Activity的启动会导致这个状态。 3. 由被覆盖状态回到前台或解锁屏:Activity将调用onResume()方法,重新获取焦点并完全可见。 4. Activity转到新界面或按Home键:首先调用onPause(),然后调用onStop(),Activity变为不可见,资源可能被释放以优化性能。 5. 用户返回此Activity:系统会调用onRestart(),恢复Activity,接着调用onStart(),最后调用onResume(),使Activity重新进入运行状态。 6. 在内存不足的情况下,系统可能会杀死后台的Activity。当用户返回时,Activity将从onCreate()开始重建,接着是onStart()和onResume(),确保Activity状态的恢复。 7. 退出Activity:用户操作如按下Back键或调用finish()时,系统首先调用onPause(),然后是onStop(),最后是onDestroy(),标志着Activity的彻底结束。 Fragment是Activity的一个补充,它允许在单个Activity中构建更复杂的用户界面。Fragment有自己的生命周期,但受到所处Activity的影响。Fragment有三种主要状态: - Resumed:Fragment可见且活跃,可以接收用户输入。 - Paused:所在Activity可见,但不具有焦点,例如在对话框Fragment之上或Activity正在后台。 - Stopped:Fragment不再可见,可能是因为Activity转向后台,或Fragment被替换或删除。在这种情况下,Fragment可以通过BackStack恢复。 需要注意的是,虽然Fragment可以嵌套在另一个Fragment中,但这种做法并不推荐,因为这样会增加复杂性,并可能导致生命周期管理的问题。最佳实践是保持Fragment的独立性,直接将其嵌入Activity中。当处理Fragment的生命周期时,要特别注意在适当的方法中保存和恢复状态,以防止数据丢失。同时,合理地管理Activity和Fragment之间的通信也非常重要,这通常通过接口回调或EventBus等方式实现。