某些设备配置能够在运行期间改变(如屏幕方向、键盘的可用性、语言等)。当这些改变发生时,Android会重建正在运行的Activity(系统调用onDestroy()方法后,立即调用onCreate()方法)。设计这个行为来帮助应用程序自动的适应新的配置,重新加载应用程序的替代资源(针对不同屏幕方向和尺寸的布局)。
如果正确的设计你的Activity使它能够处理屏幕方向改变期间重启和恢复以上描述的Activity状态,就会使你的应用程序对于Activity生命周期内的费异常事件的处理更富有弹性。
处理像重启这类事件的最好方法是使用前面章节中讨论的onSaveInstanceState()和onRestoreInstanceSate()方法来保存和恢复Activity的状态。
关于发生在运行时的配置改变以及如处理这种改变的更多信息,请阅读处理运行时改变(Handling Runtime Changes)指南。
注:本人转载系个人觉得翻译的很好,值得收藏,且自己回头看着方便。
如有兴趣请访问作者官方博客http://blog.csdn.net/FireOfStar
分享到:
相关推荐
总结来说,重建Activity是Android应用开发中一个核心的概念,需要开发者理解Activity生命周期、合理管理状态信息、并在必要时通过回调函数处理状态保存和恢复。在资源紧张或配置变化导致Activity销毁时,通过这些...
- `LoaderManager`是异步数据加载的管理器,可以避免在配置改变时重新加载数据,提高了应用的响应性和用户体验。 2. **appcompat-v7库**: - `appcompat-v7`库的主要目的是为了让开发者能够在低版本Android设备上...
这里讨论了如何自定义Activity的标题栏,通过改变标题栏的外观来匹配应用的整体风格。 #### 2.6 App->Activity->Dialog 进一步探讨了对话框的使用,包括不同类型的对话框(如警告对话框、提示对话框等)及其应用...
`android-support-v4`中的LoaderManager允许开发者在API级别7及以上的设备上使用Loader,确保数据的实时性和准确性,同时避免在配置改变时丢失数据。 **AppCompat库** `android-support-v4`库常常与AppCompat库...
为了在Activity状态改变时保存用户数据,Android提供了onSaveInstanceState(Bundle outState)和onRestoreInstanceState(Bundle savedInstanceState)方法。在系统准备销毁Activity时,会调用onSaveInstanceState(),...
最后,Activity还涉及到主题(Theme)和样式(Style)的应用,以及配置变化(如屏幕方向、语言切换)的处理。开发者需要学习如何自定义Activity的主题,以及在配置变化发生时如何优雅地处理。 总之,"android-...
这可以通过在AndroidManifest.xml中对Activity设置`android:configChanges`属性来改变,比如添加`orientation`或`screenSize`,这样Activity将在配置变化时收到`onConfigurationChanged()`回调,而不是被销毁。...
开发者可以使用`android:configChanges`属性来手动处理配置变更,避免不必要的重建。 六、Activity的保存与恢复状态 当Activity被系统销毁(如屏幕旋转)时,可以使用`onSaveInstanceState(Bundle)`保存当前状态,...
此外,如果你使用的是静态Fragment(即在布局文件中定义的Fragment),可能需要在Activity的`onCreate(Bundle savedInstanceState)`方法中移除并重新添加Fragment,以确保配置改变后能正确更新。 总之,处理...
4. **保存和恢复状态**:在onSaveInstanceState()和onRestoreInstanceState()方法中保存和恢复Activity的状态,以确保应用在配置改变时能正确恢复。 总之,理解Activity的生命周期和如何有效地管理它是开发Android...
标题提到的“Android-这是个方便切换夜间模式的库利用官方夜间模式同时不用重启Activity”是一个旨在简化Android应用夜间模式切换的第三方库。这个库允许开发者在不重新启动Activity的情况下实现夜间模式的即时切换...
4. **AndroidManifest.xml**:这是每个Android应用的核心配置文件,它包含了应用的元数据,如活动(Activity)、权限、服务(Service)等信息。在这个项目中,可能会定义主游戏Activity。 5. **布局文件**:在res/...
这个属性的作用是告诉 Android 系统,让应用程序来处理屏幕方向和键盘状态的改变,而不是由系统来销毁当前 Activity 然后重启一个新的实例。 但是,这只是第一步。我们还需要在 Java 代码的 Activity 子类中加入...
- **环境配置**:安装Android Studio,设置SDK,配置AVD或连接物理设备。 - **项目结构**:理解Android项目的目录结构,如src、res、build.gradle等。 - **布局设计**:使用XML在res/layout目录下创建用户界面,...
默认情况下,当设备配置改变时,系统会重新创建Activity。为了避免不必要的重建,可以通过在AndroidManifest.xml中指定Activity的android:configChanges属性,或重写onConfigurationChanged()方法来手动处理配置变化...
源码文件“android tabhost --android UI源码”应该包含了实现TabHost功能的详细代码,包括如何创建和配置TabSpec,以及如何与Activity或Fragment交互。 在实际应用中,Android开发者经常使用ViewPager配合...
当设备被快速移动并改变方向时,传感器会记录到较大的加速度值,这些值的变化可以作为判断晃动的依据。 以下是使用"Android-shake-detector" 实现设备晃动检测的一般步骤: 1. **添加依赖**:首先,你需要在项目的...
3. 处理配置文件的改变:当设备配置如屏幕方向发生变化时,系统默认会重新创建Activity。通过重写`onConfigurationChanged()`可避免重建。 4. Activity之间的合作:Activity可以通过Intent传递数据,并使用...
使用Android-Hauler库,开发者可以轻松地为自己的Activity添加滑动关闭功能,无需编写大量的自定义视图和触摸事件处理代码。该库提供了简单易用的API接口,可以方便地集成到现有的项目中。开发者只需在Activity中...
`android-support-v4`库中的LoaderManager使得开发者可以方便地管理数据加载过程,即使在配置改变时也能保持数据状态。 3. **ViewPager扩展**:ViewPager是一种滑动视图组件,通常用于实现水平滑动的页面浏览效果。...