本人写了一个activity初始化了一些数据,而在另一个activity改变数据后返回时,发现数据又再一次被初始化,有什么办法可以改变这种情况吗?
初始化数据是在onCreate()
高洛峰2017-04-17 17:36:18
공식 Android 튜토리얼에서 Activity Lifecycle의 내용을 알아보는 것이 좋습니다.
URL은 https://developer.android.com...
해결책:
초기화 작업을 OnCreate()
이나 OnResume()
메서드 대신 Activity의 OnStart()
메서드에 넣습니다.
정적 전역 변수 식별자를 0으로 설정하고, 초기화 후에 1로 설정하고, 초기화 전에 변수가 0인지 확인할 수도 있지만, 이 문제를 해결하려면 LifeCycle을 이해하는 것이 좋습니다. 문제.
첨부된 Lifecycle 사진
黄舟2017-04-17 17:36:18
첫 번째 현상은 데이터가 다시 초기화되었기 때문에 해결 방법은 다음과 같습니다.
1. 왜 데이터가 다시 초기화되었는지 생각해 보세요. 위에서 언급한 것처럼 OnResume()에서 초기화했을 수도 있습니다. , OnStart() 메소드.
2. 문제의 원인은 데이터가 여러 번 초기화되기 때문입니다. 따라서 데이터 초기화를 위한 다중 호출 기능을 추가하면 초기화 데이터를 캡슐화할 수 있습니다. 단일 관심 모델과 약간 비슷합니다. 이것의 장점은 여러 실행에서 발생할 수 있는 문제를 해결한다는 것입니다.
PHPz2017-04-17 17:36:18
Activity
이 destroy
일 때마다 초기화 프로그램을 onCreate
에 넣어도 원하는 결과를 얻을 수 없습니다. 그러니 먼저 log
를 확인하고 Activity
라이프사이클을 살펴보는 것이 좋겠습니다.
阿神2017-04-17 17:36:18
페이지에 들어갈 때마다 데이터가 이미 존재하는지 확인하세요. 이미 존재하는 경우 캐시를 사용하고 네트워크에 데이터 로드를 요청하지 마세요.
PHP中文网2017-04-17 17:36:18
일반적으로 onCreate는 활동이 소멸된 후에만 다시 호출됩니다. 현재 활동의 시작 모드와 다른 활동의 시작 모드를 확인하세요.