2013-05-21 4 views
0

나는 안드로이드 애플 리케이션과 함께 일하고 있으며, 내 애플 리케이션의 모든 모든 활동/클래스에 나중에 액세스 할 수있는 일부 글로벌 환경 설정을 수립하는 방법을 찾고 있습니다. 이것은 일부 사람들이 객관적인 C 프로그래밍에서 AppDelegate를 사용하는 것으로 끝나는 것과 비슷합니다. 내가 그물에 본 대답은 내가 응용 프로그램에서 확장하거나 SharedPreferences에 데이터를 저장 제안합니다. 두 가지 approches를 결합하여 내 응용 프로그램에서 Preferences 객체 (예 : Preferences.getName())의 속성을 계속 호출 할 수 있고 SharedPreferences에 데이터를 유지하도록하는 방법이 있는지 알고 싶습니다. 케이스 안드로이드는 내 응용 프로그램을 다시 시작하기로 결정하고 내 Preferences 객체의 모든 데이터를 잃어 버렸지 만 SharedPreferences에서 다시 가져 와서 Preferences 객체를 다시 채울 수 있습니다. 아무도 이것이 어떻게 할 수 있는지 그리고 그것이 실행 가능한지 알려주시겠습니까?안드로이드 글로벌 환경 설정

답변

2

짧은에서 https://stackoverflow.com/a/13673178/338479

에서 내 대답을 참조하십시오, 내 기본 설정을 보유하는 "싱글"클래스를 생성하고 데이터는 한 응용 프로그램이 메모리에 유지로 지속됩니다. 응용 프로그램이 시스템에 의해 종료 된 경우, 싱글 톤 클래스는 나중에 자동으로 다시로드합니다.

응용 프로그램 클래스를 확장하여이 작업을 수행 할 수도 있지만 일반적인 방식으로는 이런 식으로 수행하는 것이 실제적인 이점이 없다고합니다.

+0

빠른 접근 방식에 대한 몇 가지 간단한 질문입니다. 휘발성 및 동기화 된 키워드의 사용은 무엇입니까? 또한, 아마도 내가이 pref 객체의 sharedPreferences에 글을 병합 할 수 있습니까? 따라서 객체를 인스턴스화 할 때마다 해당 필드를 채우고 sharedPreferences를 유지합니다. 방법 과부하로 이것을 수행 할 수 있습니까? 컨텍스트없이 인스턴스를 가져 오는 방법을 사용하면 파일에 저장된다는 것을 의미합니다. 컨텍스트 매개 변수가있는 또 다른 메소드는 sharedPreferences에서 인스턴스화한다는 것을 의미합니까? 만약 내가 감각을 만들지 모르겠다. –

+0

"Singleton Pattern"에 대한 검색을 수행하면 질문에 대한 자세한 답변을 얻을 수 있지만,이를 사용하면 여러 스레드가 항상 같은 개체에 액세스 할 수 있습니다 부패의 위험이나 실수로 하나 이상의 인스턴스를 만들지 않아도됩니다. –

+0

sharedPreference를 작성하는 것만 큼, 내가 앱에서했던 것과 똑같은 소스 코드를 가져왔다. 또는 SharedPreferences의 서브 클래 싱을 제안 하시겠습니까? 나는 그것에 대해 생각해 본 적이 없지만 효과가있을 수 있습니다. –

관련 문제