2014-06-12 2 views
0

내 응용 프로그램에서는 사용이 설정 한 기본 설정을 얻으려면 getPreferences(Context.MODE_PRIVATE)을 사용합니다. 제 전체 프로젝트에서 getPreferences이 아닌 getSharedPreferences을 사용하고 있습니다.BroadcastReceiver의 GetPreferences

이제 BroadcastReceiver에서 환경 설정을 가져오고 싶지만 다음은 문제입니다. getSharedPreferences 메서드 만 사용할 수 있습니다. 이걸로 다른 환경 설정 파일을 얻었 을까? 그렇다면 getSharedPreferences 메서드를 사용하여 '정상'환경 설정 (getPreferences 메서드로 얻을 수있는)을 어떻게 얻을 수 있습니까?

답변

1

getPreferences() 메소드는 Activity 내에서만 사용해야하며 BroadcastReceiver 내에서 사용할 수 없습니다. 대신, getSharedPreferences (String prefKey, int mode)를 사용하여 모든 앱 구성 요소에 환경 설정을 가져와야합니다. "영구 상태를 저장"에서 여기 봐 :

http://developer.android.com/reference/android/app/Activity.html

+0

두 가지 방법 모두 동일한 환경 설정 파일을 제공합니까? 나는 이것들이 두 개의 서로 다른 파일이라고 생각하고 나는 서로 접근 할 수 없다. 그래서 내가 쓰는 모든 설정은'getPreferences'와'getSharedPreferences'에서 접근 할 수 있습니다. – Cilenco

+0

내가 옳지 않다면 나를 괴롭히지 말아라.하지만 당신이 활동의 ​​클래스 이름을 사용하고 있다면 나는 그렇다고 생각한다. getPreferences()는 활동의 클래스 이름을 환경 설정 이름으로 전달합니다. getSharedPreferences()에서이 매개 변수를 사용하면 작동 할 수 있습니다. – Opiatefuchs

1

getPreferences이이 환경 설정은 이름이없는 개체가 만들어집니다 것을 의미하지 않는다, 기본 설정의 이름을 통과하지 못한 전화에서 . 간단하게이 호출은 이런 방식으로 만들어진 기본 설정 파일에 기본 이름을 지정합니다.

그리고 항상이 메소드를 호출하기위한 활동에 대한 참조가 필요합니다. ACTIVITY.this.getPreferences (모드)

getSharedPreferences이 경우 당신은 그것에 이름을 할당하여 환경 설정 파일을 만듭니다.

getSharedPreferences (이름, 모드)

솔루션

  1. 중 하나를 사용 getSharedPreferences (이름, 모드) 앱이

  2. 에 걸쳐 또는 (어떤 이름 getPreferences을 얻으려고 모드)는 sharedPreference 파일을 할당합니다. 그리고 수신기에서 getSharedPreferences (name, mode)로 그 이름을 사용하십시오.

  3. 수신자에게 보이는 활동에 대한 참조를 전달하십시오. (일부 문제가 발생할 수 있음)