我一直在加加弄清楚这个问题。
尽管我已经阅读了很多有关"方向变化"的内容,但Android会终止一项活动并将其作为全新的活动来启动,而处理此活动的唯一方法是将所有内容保存在onSaveInstanceState()中,然后尝试将其还原到onCreate()中。
但是我的活动在不同的时间进行很多不同类型的网络活动,并且如果在执行网络活动时更改方向,则我将不得不处理许多不同而复杂的场景。
有没有简单的方法可以指出Android,更改方向后根本不需要重新绘制此活动,以便它自动保存所有数据并重新使用它?
我想知道是否有类似的事情。
是的,您可以将属性android:configChanges="orientation"添加到AndroidManifest.xml文件中的活动声明中。
编辑:
android:configChanges属性的目的是防止在确实必要时重新创建活动。例如,"相机"应用程序使用此属性,因为在发生方向更改时,不得重新创建相机预览屏幕。用户希望旋转设备时可以无延迟地进行摄像头预览,并且摄像头初始化不是一个很快的过程。因此,Camera应用程序手动处理方向更改是一种本机行为。
对于大多数应用程序,在方向更改期间是否重新创建活动并不重要。但是有时由于创建活动缓慢,由活动执行的异步任务或某些其他原因而在此过程中保留活动更为方便。在这种情况下,可以稍微调整应用程序并使用android:configChanges="orientation"属性。但是,当您使用此调整时,了解真正重要的是您必须实现正确保存和恢复状态的方法!
因此,总结一下这个答案,