Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android应用程序在方向改变时重新启动_Android - Fatal编程技术网

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),但这应该是第一个答案,也是可以接受的答案