① 현재 Activity의 onSaveInstanceState(Bundle outState)를 호출하여 애플리케이션에 일부 데이터를 저장할 수 있습니다.
②그런 다음 onDestroy()를 호출하여 현재 활동을 삭제합니다
③onCreate() 또는 onRestoreInstanceState() 메서드를 호출하여 Activity를 다시 생성합니다(즉, 프로그램이 onCreate에서 코드를 다시 실행함)
추가로 설명해야 할 한 가지는 onSaveInstanceState(Bundle outState)를 사용하는 방법입니다. 이 메서드는 화면이 회전할 때 호출됩니다. 여기서 Bundle 매개변수는 화면이 회전하기 전의 시간을 캡슐화하는 것입니다. 데이터를 저장한 다음 onDestroy()를 호출하여 현재 활동을 삭제하고 마지막으로 onCreate(Bundle selectedInstanceState)를 다시 호출합니다. 이 경우 onCreate에서 활동을 다시 만들 때 outState가 saveInstanceState에 할당됩니다. 이전에 저장된 데이터는 다시 생성된 활동을 초기화하는 데 사용됩니다. 이는 가로 화면이든 세로 화면이든 관계없이 애플리케이션의 전체 실행 프로세스 동안 데이터 변경이 일관되어야 하기 때문에 매우 중요합니다. 화면이 바뀌었다고 해서 변경할 수는 없습니다.
또한 onSaveInstanceState(Bundle outState) 메소드는 화면이 회전할 때 반드시 실행되므로 이 메소드를 화면 회전용 모니터로 완벽하게 사용할 수 있습니다
예:
*Android에서는 ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE 및 ActivityInfo.SCREEN_ORIENTATION_PORTRAIT가 완전히 세로 또는 가로인 경우에만 반환할 수 있다고 규정하고 있으므로 가로 화면인지 세로 화면인지 판단하는 것은 간단한 문제가 아닙니다. , 이는 실제로는 거의 불가능합니다.
다음 사항을 알아두셔야 합니다
1. 설정
<activity> 노드의 android:screenOrientation 속성은 이 작업을 완료할 수 있습니다.
으아아아2. 화면 회전 효과를 강제로 켭니다
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
3. 모니터 화면 회전
방법은 다음과 같습니다.
첫번째: 허가문:
<uses-permission Android:name="android.permission.CHANGE_CONFIGURATION"></uses-permission>
두 번째: 활동에서 캡처할 이벤트 유형을 선언합니다.
으아아아여기에서 Android:configChanges 속성을 선언해야 합니다. 이 속성은 프로그램에서 캡처할 수 있는 이벤트 유형을 지정합니다. 여러 이벤트 유형은 |으로 구분됩니다.
여기에 방향이 없으면 프로그램에서 화면 변경 이벤트를 캡처할 수 없습니다.
세 번째: Activity에서 onConfigurationChanged 메서드를 다시 작성
으아아아정말로 할 수 없는 경우에는 현장에서 저에게 연락해 주시면 살펴보고 함께 진행하도록 도와드리겠습니다
제 질문에 직접 대답은 안 하셨지만 오늘 말씀하신 내용을 잘 활용했습니다.