如何在MapActivity中禁用方向更改

时间:2012-03-11 13:07:09

标签: android android-maps

这是事情。我的MapActivity启动后需要做一个很长的过程,我有很多GeoPoints要添加到地图中。一切正常,但我想显示ProgressDialog,而我的AsyncTask在后台完成工作,所以用户实际上知道在几秒钟内发生了什么。再一次,一切正常,直到我在ProgressDialog活着时旋转手机。没问题我想,我已经在另一个Activity中处理了这个,所以我只是将Activity传递给AsyncTask,然后在显示对话框之前调用以下行,所以我在显示对话框的Context中,不会过早地被摧毁,从而产生一股力量:

activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

...我将在解除对话框后调用此行:

activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

...所以用户可以再次旋转他的手机。这就是我的问题:它只是在MapActivity中不起作用,它会在NOSENSOR行上产生NullPointerException。有没有其他方法可以暂时禁用MapActivities中的旋转?我可能只是将整个事情修复为“肖像”,但这不是我想要做的,如果我能做得更好。

欢呼声

1 个答案:

答案 0 :(得分:0)

自己处理配置(如方向更改)。将其添加到您的清单

android:configChanges="orientation|keyboardHidden"

在活动代码中。

然后,您可以通过将以下方法添加到您的活动来处理这些配置更改

@Override
public void onConfigurationChanged(Configuration config){
    super.onConfigurationChanged(config);

}