내 응용 프로그램에서 다른 클래스 파일이 있습니다. 나는 2 개가 활동이고 5 개가 활동을하는 5 개의 과목을 가지고 있습니다. 나머지 2 개는 클래스입니다. 이 두 클래스에서 변수의 수명은 얼마입니까? 나는 활동이 OS에 의해 죽을 수 있으므로, 활동이 죽을 때 서비스의 활동 변수를 사용할 수 없다는 것을 알고있다. 액티비티도 서비스도 아닌 애플리케이션의 수명 동안 다른 두 클래스 파일의 변수를 사용할 수 있습니까?안드로이드 기본 사항 - 다른 클래스 파일
답변
The other 2 are just classes. What is the lifetime of the variables in these 2 classes.
는 변수가 정적 경우
변수 인스턴스의 정적 여부에 따라 달라집니다 : 클래스 주먹 시간을로드 할 때 롤 드릴 것입니다.
경우 예 : 그것은 당신이 CLAAS의 인스턴스를 생성 위치에 따라 달라집니다 및 활동이 활동의 변수도 지워지지 있음을 살해 될 때 인스턴스의 범위는
so i wont be able to use the variables of the activities in the service when the activity is killed.
예 것입니다.
Can I use the variables in the other 2 class files anytime during the lifetime of the application, which are neither activities nor services?
당신은 클래스만큼 다른 클래스 또는 활동이나 서비스로의 참조가 유지됩니다
1- make them static
2- or if they are not static declare them in application file of you project.
하여 응용 프로그램의 수명을 사용할 수 있습니다. 활동에 클래스에 대한 참조가있는 경우 활동이 파괴되면 클래스가 사라집니다. 서비스와 동일합니다. 불행하게도 POJO에 대한 참조 ("정상적인 클래스"당신이 그것을 전화로) 하나의 액티비티에서 다른 액티비티를 전달하는 안드로이드 방법이 없습니다, 그래서 당신은 쉽게 살아 클래스를 유지할 수 없습니다.
나는 RoboGuice를 사용하고 pojo의 Injectable Roboguice 클래스를 사용하여 활동 및 서비스에서 동일한 객체를 참조 할 수 있으며, 싱글 톤 인 경우 앱이 실행되는 동안 계속 살아 있습니다. u는 활동이나 서비스를 만든 다음 정적 값 변경 등의 변수를 만들 경우
"계속 참고하십시오"는 의미는 무엇입니까? 서비스를 통해 pojo 변수에 계속 액세스하면 그 클래스는 올바르게 종료되지 않습니다 .. – Zer0
활동에 클래스가 들어있는 필드가 있다고 가정합니다. 당신의 수업이 A와 같고 당신의 활동은 A a = new A()입니다; 액티비티가이 referene을 a로 유지하는 한 객체 a가 유지됩니다. 활동이 파괴되면 필드 a도 파괴되고 해당 객체는 가비지 수집됩니다. 또는 개체가 목록에 있으면 목록이있는 한 개체가있는 것입니다. 서비스에있는 pojo에 대한 참조가있는 경우 pojo가 유지됩니다. 서비스가 pojo에 대한 참조를 활동으로 전달할 수있는 방식으로 보조 또는 서비스 호출을 설정할 수 있습니다. – Christine
하지만 내가 말했듯이, RoboGuice를 사용하면 인생을 훨씬 쉽게 할 수 있습니다. – Christine
당신은 유지됩니다, 그 변수를 사용할 수 있습니다. 그렇지 않으면 u는 활동 또는 서비스 클래스에서 해당 클래스 변수의 오브젝트를 작성할 수 있습니다 (활동 또는 서비스마다 별도의 변수 인스턴스가 필요한 경우). 당신이 응용 프로그램의 수명 전반에 걸쳐 참조하려는 일부 개체가있는 경우
예 저는 활동과 서비스 모두에 대해 1 개의 변수를 갖고 싶습니다. 너무 아프다. 따라서 서비스가이 변수를 변경하면 활동이 다시 가동되면이 변수를 읽을 수 있습니다 .. – Zer0
난 당신이 응용 프로그램 컨텍스트에 저장 추천 할 것입니다. 다음 방법 중 하나를 통해 응용 프로그램 컨텍스트에 대한 참조를 얻을 수 있습니다 :
Context#getApplicationContext()
사용자 정의 응용 프로그램 클래스를 정의 매니페스트에서 Activity#getApplication()
사용하려는 : 확인 this
그런 다음 응용 프로그램의 onCreate 메소드에서 원하는 객체를 만들고 다른 Android 구성 요소가 사용할 getter를 제공하십시오.
감사합니다. 활동이나 서비스가 아닌 클래스에서 정적 변수를 사용하여이 방법을 사용하면 어떤 이점이 있습니까? – Zer0
- 1. 빌드 배포 기본 사항
- 2. 안드로이드 만드는 기본 활동 클래스
- 3. Feedparser 기본 사항 방법
- 4. 안드로이드 파일 IO 인터페이스 클래스
- 5. 모바일 HTML 페이지 기본 사항
- 6. WCF의 기본 사항 - 엔드 포인트
- 7. XAML 파일의 다른 기본 클래스
- 8. 안드로이드 설치 세부 사항
- 9. iPhone보기 전환 기본 사항
- 10. Oprofile의 기본 의심 사항
- 11. 확률 기본 사항
- 12. 전문가 시스템 기본 사항
- 13. PERFORCE 권장 기본 사항
- 14. JITs 기본 사항
- 15. 문서 클러스터링 기본 사항
- 16. 푸시 알림 기본 사항
- 17. Io 언어 기본 사항
- 18. 안드로이드 : C에서 호출하는 자바 클래스 ++ 기본 활동
- 19. C# 개체/디자인 기본 사항
- 20. JQuery Ajax GET 기본 사항
- 21. Android HTTPS 연결 기본 사항
- 22. 깊이 우선 검색 기본 사항
- 23. SVN 저장소 설정의 기본 사항
- 24. PHP 클래스 작성에 대한 권장 사항
- 25. 기본 컨트롤러 클래스 대신 다른 컨트롤러 클래스 사용
- 26. 안드로이드 기본 환경 설정 XML 파일 형식
- 27. 안드로이드 리눅스 커널 세부 사항
- 28. 무스 기본 사항 : 파일 열기 및 구문 분석
- 29. piping 요구 사항 파일
- 30. 클래스 이름과 파일 이름이있는 기본 메소드
제가 다른 2 종류의 변수의 유효 기간을 설정할 수있다. 기본적으로 나는 서비스에서 몇 가지 변수를 사용하고 싶다. 지금은 활동에서 사용하고 있으므로 활동이 더 이상 존재하지 않으면 서비스가 중단됩니다. 그렇다면 다른 2 개의 클래스에서 변수를 만들어서 서비스에서 항상 사용할 수 있도록해야합니까? 정적 변수입니다. – Zer0
고마워요!내가 OS를 죽일 때라도 서비스에 이러한 변수를 사용할 수 있어야한다고 생각합니다. – Zer0
대답의 맨 아래에 두 가지 옵션이 있습니다 ..... –