今天写了一个Demo,来测试了一下ActivityGroup和Activity的生命周期。
其实,Activity的生命周期已经没什么好说的了,这要是Android入了门的都应该知道。主要是ActivityGroup的生命周期以及ActivityGroup和Activity并存的时候生命周期的改变。
ActivityGroup的生命周期的方法就onCreat()、onResume()、onPause()、onStop()、onDestroy()5个方法,运行顺序和Activity的相同。
我创建了一个ActivityGroup和3个Activity(A、B、C)。程序运行后,首先执行的是Group的onCreat、onStart、 onResume方法,由于3个Activity全部通过onClick事件来调用的,所以,接下来就是点击那个控件,就跳到相应的Activity,并且执行当前Activity的onCreat、onStart、onResume方法。
当点击其他控件做跳转的时候,执行上一个Activity的onPause方法和当前Activity的onCreat和onResume方法,但是,不会执行上一个 Activity的onStop方法(Intent直接跳转Activity的话,执行完新的Activity的onCreat和onResume方法后,会执行旧Activity的onStop方法)。
比如说先点击跳转到A,再切换到B,正如上文说的执行。但是,接下来当我从B再回到A的时候,程序会先执行原来的A 的onStop和onDestroy方法。然后在执行A的onCreat、onStart、onResume方法(一般的Intent回上一个 Activity的时候,并不会把原来的onDestroy再新建一个的)。
整个Group在Activity的切换过程中不受任何影响。
当点击返回按钮的时候,所执行的并不是Activity回到上一个Activity,而是退出了整个的ActivityGroup。执行顺序为:
1、 执行当前Activity和ActivityGroup的onPause方法。
2、 执行当前已经创建过的所有Activity和ActivityGroup的onStop(先Activity的onStop方法)。
3、 执行当前已经创建过的所有Activity和ActivityGroup的onDestroy(先Activity的onDestroy方法)。
分享到:
相关推荐
然而,从API 11开始,官方推荐使用Fragment来代替ActivityGroup,因为Fragment提供了更好的回退管理、生命周期控制和更易于维护的代码结构。 2. **GridView**:GridView是一种视图容器,它以网格布局显示数据集。每...
- 生命周期管理:`ActivityGroup`管理的子Activity生命周期可能会变得复杂,容易导致内存泄漏和状态恢复问题。 - 性能:相比Fragment,`ActivityGroup`在处理复杂的UI层级和动画时,性能可能较差。 - 代码复杂性:...
Android 开发—使用 ActivityGroup 来切换 Activity 和 Layout Android 开发中,经常需要在不同的 Activity 之间进行切换,并且显示不同的ContentView。为了实现这个功能,我们可以使用 ActivityGroup 来管理不同...
在Android开发中,Activity是应用的基本组件之一,用于展示用户界面和处理用户交互。ActivityGroup是一种旧版的Android实现,它允许在一个Activity中嵌套多个子Activity,这在早期版本的Android系统中常用于实现类似...
这个过程通常需要重写`startChildActivity()`方法,以便在ActivityGroup内部管理子Activity的生命周期。例如: ```java public void startChildActivity(String tag, Intent intent) { Window window = ...
2. **ActivityGroup的使用**:ActivityGroup通过覆盖onCreateView()和onDestroyView()方法来管理子Activity的生命周期。当用户点击某个标签时,ActivityGroup会调用这些方法来加载或销毁相应的视图。 3. **Intent的...
现代Android开发中,推荐使用Fragment搭配FragmentManager和FragmentTransaction来实现界面的切换和管理,这样可以更好地支持多屏幕适配,以及利用Android Studio提供的工具和生命周期管理。然而,理解ActivityGroup...
2. TabHost的生命周期与ActivityGroup及其子Activity的生命周期之间的关系。 3. Tab切换时ActivityGroup如何处理子Activity的状态保存和恢复。 4. 如何实现各个tab之间的数据共享和通信。 通过学习这个源码,开发者...
4. 子Activity的生命周期管理:由于ActivityGroup内嵌了Activity,所以必须手动处理子Activity的生命周期。例如,当用户在选项卡之间切换时,需要调用finish()方法结束当前子Activity,并启动新的子Activity。 5. ...
然而,自Android 3.0(API Level 11)起,官方推荐使用Fragment替代ActivityGroup,因为Fragment提供了更好的回退栈管理和生命周期管理。 在ActivityGroup中,我们主要关注以下几个关键知识点: 1. **...
`Fragment`提供了更灵活的界面构建和生命周期管理,而且在多屏幕适配和回退栈管理方面更为优秀。所以,如果可能的话,建议使用`Fragment`而不是`ActivityGroup`来实现类似的需求。 总结一下,`ActivityGroup`是一个...
Fragment可以像Activity一样拥有自己的UI和生命周期,而且可以在同一个Activity中进行动态添加、删除和替换,解决了ActivityGroup的一些问题,同时也更符合Android设计原则。 在升级到使用Fragment时,需要注意以下...
然而,由于它存在一些局限性和问题,如内存泄漏和生命周期管理复杂,从Android 3.0(API级别11)开始,官方推荐使用Fragment替代ActivityGroup。尽管如此,在某些场景下,开发者可能仍会使用ActivityGroup来实现特定...
4. 处理子Activity的生命周期:在ActivityGroup中,你需要监听子Activity的生命周期回调,如onStart、onResume、onPause和onStop,以便在需要时更新父Activity的状态。 然而,值得注意的是,ActivityGroup在后来的...
2. 自定义LocalActivityManager:在ActivityGroup中,我们需要通过getLocalActivityManager()方法获取LocalActivityManager对象,用于管理内部Activity的生命周期。 3. 添加和替换内部Activity:使用...
- ActivityGroup中,LocalActivityManager是核心组件,用于管理和控制子Activity的生命周期。它可以启动、暂停、恢复或销毁子Activity,并保存每个子Activity的状态。 3. **添加和管理子Activity**: - 使用...
总的来说,ActivityGroup框架是Android早期对复杂界面组织的一种尝试,尽管现在已经被更先进的Fragment机制所替代,但对于理解Android应用的架构和生命周期管理仍有参考价值。在学习和使用过程中,应结合最新的开发...
7. **优化与注意事项**: 考虑到ActivityGroup的局限性,若要支持Android的新版本,建议使用Fragment替代,Fragment可以更好地管理生命周期,并且与Activity的交互更加灵活。此外,对于GridView,注意合理设置其列数...
5. **生命周期管理**:ActivityGroup内的子Activity生命周期需要特别注意,因为它们的创建和销毁由LocalActivityManager控制,开发者需要确保正确处理每个子Activity的生命周期回调。 6. **异常处理和回退栈管理**...