更改方向时保存屏幕状态

时间:2011-04-19 06:33:49

标签: android

我正在屏幕上显示当前位置地址。我被告知在清单文件中添加(android:configChanges =“keyboardHidden | orientation”)来存储上下文(地址)。它工作正常,但添加此行后,屏幕方向不会改变。如果我删除此行,则方向效果良好,但地址在更改方向时消失。 如果有人知道如何解决这个问题,那么请对它进行评论。

谢谢。

3 个答案:

答案 0 :(得分:2)

在清单

中使用android:configChanges =“orientation | screenSize”

答案 1 :(得分:0)

您需要保存数据,因为方向会更改,屏幕会被绘制成新的。即调用onDestroy,然后再次调用onCreate()。以下链接提供了有关如何保存数据的更多信息。

Saving Android Activity state using Save Instance State

Restoring state of TextView after screen rotation?

答案 2 :(得分:0)

当您旋转屏幕时,Android会将整个活动重新绘制为新方向。这涉及再次调用onCreate(),这就是为什么你的地址正在消失。查看onSaveInstanceState,这是一种可以覆盖的Activity方法,用于存储活动关闭和重新打开时需要保留的任何内容。只需将您的数据打包在Bundle中,然后您就可以在onCreate()的Bundle中再次访问它。

这听起来过于复杂,但这是处理它的正确方法。 Android可以出于多种原因关闭您的活动 - 屏幕旋转只是一个非常容易测试的。如果它适用于旋转,那么它可能适用于其他情况,如低内存等。