onDestroy()在处于活动横向模式的android时调用



当应用程序活动处于横向模式时,当有呼叫时,该呼叫将使场景进入纵向模式,

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start_jum);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}

调用之后,应用程序中处于横向模式的活动将被销毁并重新创建。

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

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

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

android:screenOrientation="landscape"

这可以防止Activity被破坏和重新创建。

另一种选择是告诉Android,你将自己处理方向更改,而不是在方向更改时重新创建Activity。要做到这一点,请添加

android:configChanges="orientation"

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

尝试重写onSaveInstanceState()以保存您自己的数据,并使用onCreate()onRestoreInstanceState()进行恢复。查看此以了解更多信息https://www.todaysoftmag.com/article/2663/when-do-screen-orientation-changes-matter#:~:text=在%20Android%2C%20中,%20orientation%20发生更改,调用%2C%20following%20by%20onCreate(((。

最新更新