首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当Android中的方向改变时重新加载Activity

当Android中的方向改变时重新加载Activity
EN

Stack Overflow用户
提问于 2010-12-06 16:40:20
回答 2查看 4.1K关注 0票数 4

当我的主要活动在闪屏之后启动时,它解析4个大的XML文件。这需要几秒钟的时间,我可以在启动时闪屏显示的时间中隐藏这一点。

但是当屏幕方向改变时,或者当我在子活动之后返回到主活动时,它会再次解析,因此我的应用程序“挂起”了几秒钟,在这段时间内它没有响应或其他任何事情。

我知道这在Android中是正常的行为,但是没有办法避免这种情况吗?

我读了一些关于seem的东西,但我似乎不能理解文档..

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-06 18:55:14

如果您的目标API级别为12或更低,请将此代码添加到android清单文件中的每个活动节点中。

代码语言:javascript
复制
android:configChanges="orientation|keyboardHidden"

对于13级和更高级别,您还必须包括"screensize",即:

代码语言:javascript
复制
    android:configChanges="orientation|keyboardHidden|screenSize"

现在将这段代码粘贴到每个活动的java类中。

代码语言:javascript
复制
@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();
    }
}
票数 12
EN

Stack Overflow用户

发布于 2010-12-06 16:56:12

您可以通过在AndroidManifest文件中将android:configChanges="orientation"添加到您的活动中来防止这种情况。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4364545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档