为什么在将手机从纵向旋转到横向时,应用程序是否会丢失所有数据?

时间:2013-12-11 00:27:21

标签: android android-activity screen-orientation

我正在尝试在Android中创建一个应用程序,使用Eclipse ADT并使用HTC手机。问题出在这里:从Eclipse手机上运行应用程序后,我将元素添加到ListView中,一切都很好,但是当我在横向模式下打开设备时,孔应用程序似乎重新启动,内部没有更多记录。这就像新的一样。任何想法为什么以及如何解决这个问题?请不要告诉我从手机设置中停用屏幕旋转选项。

3 个答案:

答案 0 :(得分:3)

这是android处理方向更改的方式。它会重新加载您的整个活动。处理这种情况的常用方法是在onPause()中保存您的活动状态,然后在onCreate()中将其恢复。

以下是有关Android活动生命周期的更多信息:

http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

编辑:

无论如何,您应该实施onPause(),因为如果电话在您的活动中间响起,也会调用它。在这种情况下,当用户从通话中回来时,您的活动可能会再次从头开始重新加载,用户将失去其状态。

答案 1 :(得分:1)

有一个类似的问题here。 基本上你的应用程序重新启动。您可以强制您的应用程序为纵向,也可以按照here的步骤找出如何正确处理它。

答案 2 :(得分:1)

我就这类事做出了回答over here

  

请不要告诉我从手机设置中停用屏幕旋转选项。

我不确定你是否有以下意思,但这是一个解决方案:

android:configChanges="orientation|screenSize"添加到您<activity中的AndroidManifest.xml标记中,如下所示:

<activity
    android:name="activity_name"
    android:label="@string/app_name"
    android:configChanges="orientation|screenSize" />

这样可以防止在方向改变时破坏活动,就像通常那样。还有其他方法可以解决这个问题。如果这不是您想要的解决方案,请发表评论。我可以弥补另一个。