gpt4 book ai didi

安卓应用开发 : Handling Screen Orientation Changes

转载 作者:行者123 更新时间:2023-11-29 17:54:56 26 4
gpt4 key购买 nike

我在处理屏幕方向变化时遇到了问题(例如:纵向到横向)。我正在开发一个手电筒应用程序,它有一个切换按钮,可以打开或关闭用户手机上的 LED 灯。我设置了我的 onPause() 方法来终止应用程序,如下所示:



    @Override
protected void onPause() {
super.onPause();
finish();
}

这是因为如果我打开该应用程序然后执行其他操作(例如打开 youtube),然后返回并再次按下按钮,它就会崩溃。但是因为这个“finish();”事情我无法处理屏幕方向变化,因为显然当它切换方向时它调用完成的 onPause() 方法!

所以我的问题是......我该如何做到这两点?我希望能够解决崩溃问题,但也不会在屏幕方向改变时崩溃。我不是在要求代码(尽管它会有所帮助)只是来自一组新眼睛的一些见解。

我考虑过使用“if”语句...这行得通吗?

提前致谢,安德鲁

最佳答案

当屏幕方向改变时, Activity 将再次执行 onPause()、onStop() 和 onCreate()。如果您不希望您的 Activity 在方向改变时执行 onPause,请尝试以下操作:

  1. 在您的 manifest.xml 中,为您的 Activity 添加 android:configChanges="orientation|keyboardHidden",例如:

    <activity android:name=".yourname"
    android:configChanges="orientation|keyboardHidden">
    </activity>
  2. 在您的 Activity 中,覆盖此方法:

    public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    }

但我的建议是不要在onPause()中使用finish(),系统可以很好地处理生命周期。如果你想在按下主页或后退按钮时完成你的 Activity ,请尝试覆盖 onBackPress()onUserLeaveHint(),这两个方法可以捕获返回和主页按钮按下, 并在这两个方法中添加finish()

希望对您有所帮助。

关于安卓应用开发 : Handling Screen Orientation Changes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20087033/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com