这是事情。我的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中的旋转?我可能只是将整个事情修复为“肖像”,但这不是我想要做的,如果我能做得更好。
欢呼声
答案 0 :(得分:0)
自己处理配置(如方向更改)。将其添加到您的清单
android:configChanges="orientation|keyboardHidden"
在活动代码中。
然后,您可以通过将以下方法添加到您的活动来处理这些配置更改
@Override
public void onConfigurationChanged(Configuration config){
super.onConfigurationChanged(config);
}