나는 싱글 톤을 매우 권장합니다. 문맥이 필요한 싱글 톤이 있다면,
MySingleton.getInstance(Context c) {
//
// ... needing to create ...
sInstance = new MySingleton(c.getApplicationContext());
}
애플리케이션보다 단일 구성 요소를 선호합니다. 앱 전체의 모든 전역 상태를 유지 관리해야하는 한 장소를 갖지 않고 각 개별 요소가 자체를 처리 할 수있는 한 곳이 아니라 훨씬 체계적이고 모듈화 된 앱을 유지하는 데 도움이되므로 애플리케이션보다 싱글 톤을 선호합니다. 또한 Singletons가 Application.onCreate ()에서 모든 초기화를 수행하는 경로를 낮추는 대신 (요청시) 게으르게 초기화한다는 사실이 좋습니다.
싱글 톤을 사용하는 데 본질적으로 잘못된 것은 없습니다. 말이 올 바르면 올바르게 사용하십시오. Android 프레임 워크에는 실제로로드 된 리소스 및 기타 항목의 프로세스 별 캐시를 유지 관리하기 위해 많은 기능이 있습니다.
또한 간단한 응용 프로그램의 경우 멀티 스레딩은 싱글 톤에서 문제가되지 않습니다. 설계에 따라 응용 프로그램에 대한 모든 표준 콜백이 프로세스의 기본 스레드에서 전달되므로 스레드를 통해 명시 적으로 도입하지 않으면 멀티 스레딩이 발생하지 않기 때문입니다. 컨텐츠 제공자 또는 서비스 IBinder를 다른 프로세스에 공개함으로써 암시 적으로.
하고있는 일에 대해 신중하게 생각하십시오. :)