클래스에 정적 Context
개체가 포함되어 있으면 Android Studio에서 경고를 표시합니다. 그것은 이것이 메모리 누출을 야기한다고 말한다. 그러나, 나는 이것도 안드로이드 라이브러리에서 수행 된 것으로 나타났습니다. 예를 들어 LocalBroacastManager
클래스에는 정적 인스턴스가 있고 context
개체가 포함되어 있습니다.정적 컨텍스트 경고
메모리 누수로 얼마나 나쁜가요?
나는 백그라운드에서 실행되는 싱글 톤 지오 펜싱 클래스를 가지고 있으며 사용자가 지오 펜스에 있는지 여부를 나타내는 boolean
~ sharedPreferences
을 저장합니다. 환경 설정을 저장하려면 context
개체가 필요하지만 메서드가 재정의 된 메서드이기 때문에 컨텍스트 개체를 전달할 방법이 없습니다.
context
인스턴스 변수없이 어떻게 수행 할 수 있습니까?
실제로 대부분의 사람들은 응용 개체를 요즘 시대의 단일 개체 소지자로 생각합니다.정적 사용보다 이점이 없습니다. 싱글 톤을 생성하기 위해 정적을 사용하는 것은 문제가 없지만 컨텍스트를 유지하는 데 사용해서는 안됩니다. –
objets를 statics로 저장하고 그런 식으로 액세스하면 공유 상태가되는 것을 의미하므로 피할 수있는 부분이 있습니다. 또한 싱글 톤 패턴으로 만들어진 오래된 싱글 톤은 상속되거나 확장 될 수 없습니다. 클래스의 인스턴스를 하나만 원한다면 하나의 인스턴스 만 만들고 IoC를 사용하면 필요할 때마다 사용할 수 있습니다. 왜 그것이 시대 착오적 인 지 잘 모르겠다. 애플리케이션 클래스는 클래스/의존성 트리에서 singletom과 a 최상위 클래스이다. 보통 Java 애플리케이션에서 main() 메소드를 유지하는 클래스와 비슷하지만, ssingleton을 인스턴스화하는 루트 장소가 될 수있는 좋은 후보자이다. . – SadClown