Android Activity深度解析:生命周期、启动模式与状态保存

2 下载量 25 浏览量 更新于2024-08-30 收藏 131KB PDF 举报
"本文详细介绍了Android中的Activity,包括其定义、如何在Manifest.xml中配置主Activity、Activity的生命周期以及状态保存和完全退出等关键概念。通过示例代码解析Activity的生命周期方法,帮助理解各个阶段的调用顺序。" 在Android开发中,Activity是一个至关重要的组件,它代表了用户与应用交互的视觉界面。简单来说,Activity就是屏幕上的一个全屏窗口,用户可以通过它来执行各种操作。每个Android应用通常包含多个Activity,它们之间可以通过Intent进行跳转。在AndroidManifest.xml文件中,开发者会定义一个主Activity,即应用启动时显示的第一个Activity。例如,通过以下配置: ```xml <action android:name="android.intent.action.MAIN" /> ``` 当应用启动时,这个主Activity会被展示,用户可以在此基础上启动其他Activity。新启动的Activity会被添加到一个称为任务栈(Task Stack)的数据结构中,遵循先进后出的原则。当用户按下Back键时,当前Activity将从栈顶弹出并销毁,前一个Activity则会恢复。 Activity的生命周期是其核心特性之一,涉及到多个关键方法,包括`onCreate()`, `onStart()`, `onResume()`, `onPause()`, `onStop()`, `onDestroy()`以及`onRestart()`。下面通过一个简单的示例来演示这些方法的调用顺序: ```java public class ActivityLifeDemo extends Activity { private static final String TAG = "ActivityLifeDemo"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i(TAG, "onCreate"); } @Override protected void onStart() { Log.i(TAG, "onStart"); super.onStart(); } @Override protected void onRestart() { Log.i(TAG, "onRestart"); super.onRestart(); } // 其他生命周期方法... } ``` 在上述示例中,当Activity创建并首次显示时,`onCreate()`会被调用,接着是`onStart()`。如果Activity被暂停(例如,用户打开一个新的Activity),`onPause()`会先执行,然后是`onStop()`。如果Activity重新回到前台,`onRestart()`先调用,随后是`onStart()`。而当Activity彻底退出时,`onDestroy()`会被调用。 此外,Activity的状态保存也非常重要,特别是在设备旋转或系统资源紧张时,Android可能会销毁并重新创建Activity。通过`onSaveInstanceState(Bundle outState)`方法,开发者可以保存Activity的状态数据,以便在重建时恢复。`onRestoreInstanceState(Bundle savedInstanceState)`方法用于在Activity重新创建时恢复这些状态。 完全退出应用并不简单地等于关闭最后一个Activity。通常,Android系统会维护一个任务栈,即使应用的最后一个Activity被销毁,只要任务栈还在,用户仍可以通过历史记录重新打开应用。要实现完全退出,可以重写`onBackPressed()`方法,清除任务栈并结束应用。 理解Activity及其生命周期对于开发高质量的Android应用至关重要,这包括正确管理Activity间的跳转、状态保存和恢复,以及有效地响应用户操作和系统事件。