Android应用程序在方向改变时重新启动
当我更改方向应用程序重新启动时,我丢失了当前数据。。 当我更改方向应用程序从主活动重新启动时,我正在使用包含大量活动的活动组 是否可以避免在方向更改时重新启动此应用程序Android应用程序在方向改变时重新启动,android,Android,当我更改方向应用程序重新启动时,我丢失了当前数据。。 当我更改方向应用程序从主活动重新启动时,我正在使用包含大量活动的活动组 是否可以避免在方向更改时重新启动此应用程序 任何人都知道,请告诉我。默认情况下,只要方向发生变化,Android就会重新启动活动 在Android销毁活动之前,您需要通过调用onSaveInstanceState()保存数据/状态 请看这里: 这也是一本很好的读物,可以帮助你理解如何处理它 您可以通过向AndroidManifest文件中的活动添加android:conf
任何人都知道,请告诉我。默认情况下,只要方向发生变化,Android就会重新启动活动 在Android销毁活动之前,您需要通过调用
onSaveInstanceState()
保存数据/状态
请看这里:
这也是一本很好的读物,可以帮助你理解如何处理它
您可以通过向AndroidManifest文件中的活动添加android:configChanges=“orientation”
来防止这种情况
来源:这就是它的工作原理。有一种方法可以避免这种情况,但是您应该遵循生命周期,并且能够优雅地处理活动重启。此处已多次询问此问题。您可以告诉系统忽略以下更改:
但我建议不要这样做,因为这往往表明潜在的问题尚未出现
我的建议是,您只需添加一个新类,该类将处理所有长操作或任何活动修改的恢复。API文档中有一些关于当前活动被销毁和重建原因的好信息。上次我做一些相关的工作时,我发现这很有启发性 除非您另有指定,否则配置更改(例如屏幕方向[…]的更改)将导致当前活动被销毁,并根据需要执行onPause()、onStop()和onDestroy()的正常活动生命周期过程。如果活动位于前台或对用户可见,则一旦在该实例中调用onDestroy(),则将创建该活动的新实例,使用先前实例从onSaveInstanceState(捆绑包)生成的任何savedInstanceState
如果您的android:targetSdkVersion=“12”或更低 android:configChanges=“方向|键盘隐藏”>
如果您的android:targetSdkVersion=“13”或更多
android:configChanges=“orientation | keyboardHidden | screenSize”>我使用活动组,在每个活动或组上启动我的应用程序,与服务器通信并获取数据。因此,不可能处理每个活动的配置更改。相反,我保持方向固定,使用listener进行方向更改,然后使用单独的XML进行横向和纵向。这样可以避免重新启动应用程序并保存我的数据。我知道答案是旧的('10),但这应该是第一个答案,也是可以接受的答案