활동에서 정적 객체를 사용하지 않아야하거나 활동에 정적 호출을하지 않아야하는 이유는 무엇입니까?활동의 정적 물건
답변
더 합리적인 진술은 안드로이드에서 정적 변수를 사용하는 것에 매우주의해야한다고 말하는 것입니다.
응용 프로그램을 사용할 수는 있지만 응용 프로그램이 OS에 의해 종료 될 수 있으며 사용자가 응용 프로그램으로 돌아 왔을 때 (즉 최신 응용 프로그램 목록에서) 다시 시작된다는 점에 유의하십시오. 그 결과 응용 프로그램에 많은 다른 진입 점이 생기며 정적 변수가 초기화된다고 가정 할 수 없습니다.
예를 들어, 응용 프로그램의 첫 번째 활동에 정적 변수를 설정하고 항상 그것이 설정된다고 가정하면 큰 실수입니다.
Activity에 대한 참조가있는 항목을 정적 변수로 저장하는 것은주의해야합니다. 이는 메모리를 불필요하게 소비하는 일반적인 원인이되기 때문입니다. 예를 들어, 정적 변수에 View
을 저장하는 것은 거의 확실한 실수입니다. 전체 활동이 지워지 지 않으면 가비지 수집되지 않도록하기 때문입니다.
한 활동에서 설정된 정적 변수가 다른 변수가 포어 그라운드에있을 때 설정 해제 될 수있는 이유는 무엇인지 궁금했습니다. 이것을 발견하기 전에 정적 멤버가 가비지 수집되지 않을 것이라는 인상하에 있었고 삭제 된 다른 이유를 생각할 수 없습니다. 아직 ... 당신 말이 맞아. 그들은 할 수있다. (???) – Turnsole
정적 변수가 가비지 수집되지 않는 것은 사실이지만 OS가 전체 응용 프로그램을 종료하여 메모리를 비우면 재설정 될 수 있습니다. 이는 개발자가 예기치 못한 결과를 많이 낳을 수 있습니다. 예를 들어 최근 앱 목록이나 뒤로 버튼을 사용하는 사용자는 기본 활동 이외의 일부 활동에서 애플리케이션을 시작할 수 있습니다. – wsanville
메모리 누수의 가능성을 높일 필요가없는 것들을 정적으로 만드는 것을 피하는 것이 좋습니다. 항상 일부 데이터에 대한 참조를 보유하고 있다면 GC가이를 해제 할 수 없습니다.
- 1. 이상한 물건
- 2. 간단한 물건
- 3. 필요한 물건?
- 4. 비밀 보호 비밀 물건
- 5. FCKeditor, 물건 지우기
- 6. 안드로이드 용 물건 작성
- 7. 루비의 평범한 오래된 물건?
- 8. 물건-분류 보석은
- 9. f에있는 목록에 물건 추가하기 #
- 10. 카레 기능이 이상한 물건
- 11. 내비게이션 막대에 물건 추가
- 12. lib에있는 디버깅 물건
- 13. 카메라로 물건 검색
- 14. 활동의 합계
- 15. setup.py, 설정() 플러스 다른 물건
- 16. 위치 DIV 상대적으로 다른 물건
- 17. Sharepoint : 사이트간에 물건 이동 방법
- 18. AS3의 산란 및 파괴 물건
- 19. 다른 클래스의 UIView에 물건 추가하기
- 20. 이름을 기준으로 터미널에서 물건 이동
- 21. 어떻게해야합니까 쿨 대화 물건 (MFC)
- 22. NSMutableArray에 물건 넣기 및 사용하기
- 23. 양식에 뭔가를 일치 '물건 = foo는' '물건'= '물건' '더 많은 물건'나는 이런 식으로 뭔가 일치하는 정규 표현식이 필요
- 24. Android에서 여러 활동의 메소드 재사용
- 25. 한 활동의 OutArgument 값을 다른 활동의 InArgument로 전달 하시겠습니까?
- 26. TabActivity는 동일한 활동의 여러 탭을 표시합니다 (하위 활동의 속성 초기화)
- 27. 이전 활동의 데이터를 변경하는 방법
- 28. 활동의 이벤트 등록
- 29. 다른 활동의 결과 기다리기
- 30. 다음 활동의 연락처 검색
나는 그걸로 아무런 문제가 보이지 않습니다 ... 당신이 정적 개체에 활동에 정적이 아닌 것에 대한 참조를 제공하지 않는다면 괜찮을 것입니다. – gsingh2011