我使用osmdroid制作了一个很少有活动的小地图应用程序,我在我的Android设备上运行它但是当我改变设备的方向时,似乎应用程序回到主要活动。
例如我启动应用程序,我正在寻找我在垂直(纵向)模式下的当前位置,但如果我将方向更改为横向模式,我的应用程序将重新启动,并且我在纵向模式下放松了当前位置... < / p>
我不知道为什么要这样做......
答案 0 :(得分:3)
当屏幕方向等配置发生变化时,Android会重新启动正在运行的活动。这些事件称为运行时更改。这就是你失去当前位置的原因。
您需要保存数据,以便在发生类似情况时,您可以从原来的位置恢复。
可以在Android Developer网站上找到更多信息。
答案 1 :(得分:0)
在您的清单中,在您的活动定义中添加android:configChanges="orientation"
。
例如:
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main"
android:configChanges="orientation">
否则添加screenSize
:
android:configChanges="orientation|screenSize"
答案 2 :(得分:0)
覆盖Activity
课程中的方法:
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO: handle the new configuration
}
答案 3 :(得分:0)
如果您想在所有活动之间分享一些数据;我的意思是所有的申请。那你就不关心活动的背景......你有很多选择。见answer;它包含许多代码示例和一个很好的解释。