当我的主要活动在启动屏幕后启动时,它会分析4个大XML文件。这需要几秒钟的时间,我可以在启动画面显示的时间内隐藏它。在Android中的方向更改时活动重新加载
但是,当屏幕方向改变或者当我在子活动后回到主活动时,它会再次解析,从而导致我的应用程序“挂起”几秒钟,并且它没有响应或者该时间内的任何内容。
我明白这是Android中的正常行为,但没有办法避免这种情况?
我看了一些关于savedinstancestate,但我似乎无法理解的文档..
当我的主要活动在启动屏幕后启动时,它会分析4个大XML文件。这需要几秒钟的时间,我可以在启动画面显示的时间内隐藏它。在Android中的方向更改时活动重新加载
但是,当屏幕方向改变或者当我在子活动后回到主活动时,它会再次解析,从而导致我的应用程序“挂起”几秒钟,并且它没有响应或者该时间内的任何内容。
我明白这是Android中的正常行为,但没有办法避免这种情况?
我看了一些关于savedinstancestate,但我似乎无法理解的文档..
如果您的API级别为12或更低,请在每个活动节点的Android清单文件中添加此代码。
android:configChanges="orientation|keyboardHidden"
对于13级及以后你还必须有“屏幕尺寸”,即:
android:configChanges="orientation|keyboardHidden|screenSize"
现在在你的每一个活动的Java类粘贴此代码。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
// Checks whether a hardware keyboard is available
if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
Toast.makeText(this, "keyboard visible", Toast.LENGTH_SHORT).show();
} else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) {
Toast.makeText(this, "keyboard hidden", Toast.LENGTH_SHORT).show();
}
}
加利普选中此http://developer.android.com/guide/topics/resources/runtime-changes.html &张贴任何问题之前,也是谷歌。
正如我在我的最后一句话说,我不明白他们在说什么因为有我缺乏的英语和Android体验.. 顺便说一句我的Googleing了那里;) – Galip 2010-12-06 09:05:21
您可以通过在AndroidManifest文件中添加android:configChanges =“orientation”来避免这种情况。
非常感谢你!这工作:) – Galip 2010-12-06 12:26:14