첫 번째 현상은 데이터가 다시 초기화되었기 때문에 해결 방법은 다음과 같습니다. 1. 왜 데이터가 다시 초기화되었는지 생각해 보세요. 위에서 언급한 것처럼 OnResume()에서 초기화했을 수도 있습니다. , OnStart() 메소드. 2. 문제의 원인은 데이터가 여러 번 초기화되기 때문입니다. 따라서 데이터 초기화를 위한 다중 호출 기능을 추가하면 초기화 데이터를 캡슐화할 수 있습니다. 단일 관심 모델과 약간 비슷합니다. 이것의 장점은 여러 실행에서 발생할 수 있는 문제를 해결한다는 것입니다.
초기화 데이터 작업을 onCreate 메소드에 넣어도 됩니다.
공식 Android 튜토리얼에서 Activity Lifecycle의 내용을 알아보는 것이 좋습니다.
URL은 https://developer.android.com...
해결책:
초기화 작업을
OnCreate()
이나OnResume()
메서드 대신 Activity의OnStart()
메서드에 넣습니다.정적 전역 변수 식별자를 0으로 설정하고, 초기화 후에 1로 설정하고, 초기화 전에 변수가 0인지 확인할 수도 있지만, 이 문제를 해결하려면 LifeCycle을 이해하는 것이 좋습니다. 문제.
첨부된 Lifecycle 사진

첫 번째 현상은 데이터가 다시 초기화되었기 때문에 해결 방법은 다음과 같습니다.
1. 왜 데이터가 다시 초기화되었는지 생각해 보세요. 위에서 언급한 것처럼 OnResume()에서 초기화했을 수도 있습니다. , OnStart() 메소드.
2. 문제의 원인은 데이터가 여러 번 초기화되기 때문입니다. 따라서 데이터 초기화를 위한 다중 호출 기능을 추가하면 초기화 데이터를 캡슐화할 수 있습니다. 단일 관심 모델과 약간 비슷합니다. 이것의 장점은 여러 실행에서 발생할 수 있는 문제를 해결한다는 것입니다.
Activity
이destroy
일 때마다 초기화 프로그램을onCreate
에 넣어도 원하는 결과를 얻을 수 없습니다. 그러니 먼저log
를 확인하고Activity
라이프사이클을 살펴보는 것이 좋겠습니다.페이지에 들어갈 때마다 데이터가 이미 존재하는지 확인하세요. 이미 존재하는 경우 캐시를 사용하고 네트워크에 데이터 로드를 요청하지 마세요.
로깅하고 안드로이드 라이프사이클 기능과 결합하면 기본적으로 문제가 해결됩니다
활동이 종료되었다는 뜻입니다. 이유를 생각해 보세요
일반적으로 onCreate는 활동이 소멸된 후에만 다시 호출됩니다. 현재 활동의 시작 모드와 다른 활동의 시작 모드를 확인하세요.
활동의 시작 모드를 고려할 수 있습니다. 4가지 시작 모드가 있으며 항상 귀하에게 적합한 모드가 있습니다
onSavedInstance()
onRestoreInstance()