静态方法中可以持有Activity对象吗,这么做不好吧
GC的销毁Activity时会不会因为静态方法持有引用而销毁不了啊
巴扎黑2017-04-17 17:31:34
다음 두 가지 상황을 살펴보면 질문을 이해할 수 있을 것입니다.
으아아아 으아아아A의 정적 메서드 a가 Activity 개체를 전달한 다음 메서드가 종료되고 Activity에서 참조하는 활동의 수명 주기가 종료되므로 문제가 발생하지 않습니다.
B의 정적 메서드 b는 Activity 개체를 전달하고 B의 멤버 변수 mActivity는 이 참조를 받습니다. 이 정적 멤버 변수는 프로세스에 항상 존재하므로 메모리 누수가 발생합니다.
巴扎黑2017-04-17 17:31:34
위 답변에 덧붙여, 클래스 B가 정적 내부 클래스이고 활동에 대한 참조를 보유해야 하는 경우 약한 참조를 고려할 수 있습니다.
으아아아