当前位置:  开发笔记 > 前端 > 正文

方向更改时不要重新加载应用程序

如何解决《方向更改时不要重新加载应用程序》经验,为你挑选了6个好方法。

旋转屏幕时,我根本不需要改变任何东西.我的应用程序显示时,第一次加载和旋转设备应随机图像选择另一随机图像.我怎样(简单地)让这种行为停止?



1> Xion..:

通常有三种方法可以做到这一点:

    正如一些建议的答案,您可以区分第一次创建和恢复活动的情况savedInstanceState.这是通过覆盖onSaveInstanceState和检查参数来完成的onCreate.

    您可以通过在清单中添加android:screenOrientation="portrait"(或"landscape")来将活动锁定在一个方向上.

    您可以通过android:configChanges="orientation|screenSize"标记中指定来告诉系统您打算自己处理屏幕更改.这样就不会重新创建活动,而是会收到一个回调(你可以忽略它,因为它对你没用).

就我个人而言(3).当然,如果将应用程序锁定到其中一个方向对您来说没问题,您也可以使用(2).


@EscobarCeaser,对于Android 3.2及以上版本,你需要`android:configChanges ="orientation | screenSize"`
所以对于#3你说我要做的就是在我的清单上加上那行?因为它不起作用.
`android:configChanges ="orientation | screenSize"`适合我.谢谢@Pacerier
#3请查看http://stackoverflow.com/questions/456211/activity-restart-on-rotation-android

2> corbin..:

Xion的答案很接近,但android:configChanes="orientation"除非应用程序的API级别为12或更低,否则#3()将无效.

在API级别13或更高级别,当方向更改时,屏幕大小会更改,因此这仍会导致活动在方向更改时被销毁并启动.

只需添加"screenSize"属性,就像我在下面所做的那样:



现在,当您更改方向(和屏幕大小更改)时,活动将保持其状态并被onConfigurationChanged()调用.当方向改变时,这将保留屏幕上的任何内容(即:Webview中的网页).

从这个网站了解到这一点:http: //developer.android.com/guide/topics/manifest/activity-element.html

此外,这显然是一个不好的做法,请阅读以下有关处理运行时更改的链接:

http://developer.android.com/guide/topics/resources/runtime-changes.html


不好的做法?Pfft,现实生活中的人有截止日期,如果有效,它有效;)
谢谢...添加“ screenSize”和“ orientation”后的工作

3> Josue Rocha..:

你只需要去AndroidManifest.xml内部或你的活动标签,你必须输入这行代码作为那里的人说:

android:configChanges="orientation|screenSize"

所以,你会有这样的事情:



希望它有效!



4> Aiyaz Parmar..:

只需添加android:configChanges="orientation|screenSize"清单文件的活动选项卡即可.

因此,方向更改时,Activity不会重新启动.



5> dmon..:

根据我的经验,实际上更好地处理方向更改而不是试图窃取非默认行为.

您应该保存当前正在显示的图像,onSaveInstanceState()并在应用程序onCreate()再次运行时正确还原.



6> 小智..:

这个解决方案是迄今为止最好的解决方案.在您的清单文件中添加


  

在您的活动类中添加以下代码

@Override
public void onConfigurationChanged(Configuration newConfig) 
{
    super.onConfigurationChanged(newConfig);
    if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        //your code
    } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
  //your code

    }
}

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有