에 보이지 않는 "학습 안드로이드,"나는 내 응용 프로그램에 대한 응용 프로그램 클래스를 만들었습니다내 공공 var에 마젠타의 책에서 영감을 사촌
그러나public class KITAppClass extends Application implements
OnSharedPreferenceChangeListener {
private static final String TAG = KITAppClass.class.getSimpleName();
//private SharedPreferences KITPrefs;
public SharedPreferences KITPrefs;
. . .
, 지금은 "얻고 KITPrefs가 해결 될 수 없다 "는 된 SharedPreferences 참조하는 다른 클래스 파일에서이 라인 :
allContacts.setSelected(KITPrefs.getBoolean("allContacts", false));
내가 궁금하네요 다음의 환경 설정이 공유하는 경우, 그들은 왜 표시된"예제 코드에서 "개인을? "공개"로 표시 한 후에도 여전히 보이지 않는 이유는 무엇입니까?
"import KITAppClass;"를 추가하면 나는 거의
감사합니다. 또한, 당신은 내가 응용 프로그램을 확장하는 지혜 또는 필요성을 의심하게 만드는 데 성공했습니다. 그러나 이것이 내가 생각한 것입니다. (이것이 의미가 있는지 /하지 않는지 알려주세요) : 내 앱의 유일한 GUI는 환경 설정 화면입니다. 그렇지 않으면 앱이 수행하는 모든 작업이 "배후에서"수행됩니다. 응용 프로그램은 전화의 OnBoot() 이벤트 (또는 호출 된 모든 것)를 청취하는 BroadcastReceiver를 통해 시작한 다음 조건에 따라 0, 1 또는 2 서비스를 시작합니다 (특정 기본 설정 항목의 값에 따라 다름). –
파트 II : 이런 식으로, Application 서브 클래스는 git-go에서 초기화된다. hmmm, 네, Services는 응용 프로그램 서브 클래스가 인스턴스화하지 않고 필요에 따라 기본 설정을 간단히 참조 할 수 있다고 생각합니다. ... –
@Clay :'Application'을 확장 할 때 실제적인 옳고 그른 것은 없습니다. - 그것이 필요한지 아닌지를 결정할 필요가 있습니다. 그것이 아니라면, 당신은 아직 또 다른 코드를 유지하는 것에 매달려 있음을 의미합니다. 그것없이 당신의 구성 요소를 함께 묶을 수 있다면 그것을 뺀다. 상황이 복잡해지면'Application'을 확장하는 것이 헬퍼 클래스에 대한 '정적 인'참조로 앵커 역할을 할 수 있으므로 최선의 방법이 될 수 있습니다.하지만이를 각 경우별로 살펴볼 필요가 있습니다. 어쨌든, 내가 도울 수있어서 기뻤습니다. 재미있게 보내십시오. – Squonk