android onDestroy()在活动横向模式下调用

yqlxgs2m  于 2023-09-29  发布在  Android
关注(0)|答案(3)|浏览(117)

当应用Activity处于横向模式时,当呼叫进入时,呼叫将使场景变为纵向模式,

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start_jum);

        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

}

在调用之后,处于横向模式的应用中的Activity被销毁并再次创建。

D/StartJumActivity: onPause
D/StartJumActivity: onResume
D/StartJumActivity: onPause
D/StartJumActivity: onDestroy
D/StartJumActivity: on Create

我的Activity中的数据将被删除,并创建新的Activity。在从调用返回后,是否有任何方法可以在横向模式下保留该Activity中的这些数据?

5us2dqdw

5us2dqdw1#

您可以尝试在清单中强制Activity的方向:

android:screenOrientation="landscape"

这可以防止Activity被破坏和重新创建。
另一种选择是告诉Android您将自己处理方向更改,而不是在方向更改时重新创建Activity。为此,

android:configChanges="orientation"

Activity的清单声明。现在,当屏幕方向发生时,您的Activity将不会被破坏和重新创建。相反,将调用onConfigurationChange()

u3r8eeie

u3r8eeie2#

尝试覆盖onSaveInstanceState()以保存您自己的数据,并使用onCreate()onRestoreInstanceState()还原它。查看此以获取更多信息https://www.todaysoftmag.com/article/2663/when-do-screen-orientation-changes-matter#:~:text= In%20Android%2C%20the%20orientation%20changes,called%2C%20followed%20by%20onCreate()).

vhipe2zx

vhipe2zx3#

添加android:configChanges=“orientation|在AndroidManifest.xml中添加“screenSize”

<activity
android:name=".MainActivity"
android:screenOrientation="portrait"
android:configChanges="orientation|screenSize"
>

相关问题