2011-11-28 3 views
1

안드로이드 응용 프로그램에서 응용 프로그램을 시작할 때 특정 기능을 어떻게 실행합니까? 가능하다면 특정 활동에 그것을 묶고 싶지 않습니다. 특정 활동에 대한 onCreate 메소드를 사용하면 작동하지 않습니다. 화면 오리엔테이션이 변경 되더라도 onCreate가 호출되기 때문입니다.응용 프로그램이 시작될 때 안드로이드 이벤트 처리기

답변

3

응용 프로그램이 시작될 때마다 한 번만 실행되는 기능을 사용하려면 몇 가지 옵션이 있습니다.

- 실행하려는 함수로 싱글 톤을 만들 수 있으며, 싱글 톤 내에서 정적 부울 플래그를 조건으로 함수 호출을 조건부로 만들 수 있습니다. 정적 싱글 톤은 주어진 Activity에서 외부에 있기 때문에 화면을 회전하고 개별 활동을 만들거나/파괴 할 때 플래그가 되돌아 가지 않습니다. 이 솔루션이 응용 프로그램 서브 클래 싱보다 선호되는 반면, "mySingleton.runOnce (params ...)"함수 호출이 활동의 ​​진입 점을 구성하는 각 Activity에 있는지 확인해야합니다 (Intent to from

- Application 클래스의 하위 클래스를 만들고 onCreate 메서드를 재정의 할 수 있습니다. 이는 권장되는 해결책이 아닙니다. 문서에서

일반적으로 Application을 서브 클래스 할 필요가 없습니다. 대부분의 경우 정적 싱글 톤은 더 많은 모듈 방식으로 동일한 기능을 제공 할 수 있습니다. 당신의 싱글 글로벌 컨텍스트를 (예를 들어 방송 수신기를 등록 할) 필요가있는 경우, 함수는이 첫 싱글을 구성 할 때 내부적으로 Context.getApplicationContext()를 사용하는 상황을 부여 할 수 있습니다 검색 할 수 있습니다.

희망이 있습니다.

+0

Alexander, 애플리케이션 라이프 사이클을 잘 알고있는 것 같습니다.이 조언이 http://stackoverflow.com/questions/8292265/differentiate-processes-from-service-and-activity-on-android에 적용됩니까? – RealCasually

관련 문제