1

하나의 액티비티와 브로드 캐스트 리시버가있는 앱을 개발합니다. 나는 활동에서 놓인 어떤 조정을 사용할 수있는 방법으로 브로드 캐스트 수신기를 놓고 싶다.브로드 캐스트 리시버에서 sharedpreferenced 사용

아래의 코드와 두 가지 활동 사이를 사용하지만 활동 및 브로드 캐스트 수신기 캔트 캐치 설정간에 사용합니다. 여기

내 avtivity에 저장하는 코드 :

private void savePreferences(String key, String value) { 
    SharedPreferences sp = PreferenceManager 
      .getDefaultSharedPreferences(this); 
    Editor edit = sp.edit(); 
    edit.putString(key, value); 
    edit.commit(); 
} 

및 braodcast 수신기에서이 코드 :

수신기는 "myPrefs"라는 이름의 파일을 사용하지만 기본 파일 이름을 사용하는
@Override 
    public void onReceive(Context context, Intent intent) { 

    Bundle extras = intent.getExtras(); 




     SharedPreferences sp = context.getSharedPreferences("myPrefs", 
       Context.MODE_PRIVATE); 
     String Password = sp.getString("PASSWORD", "1234"); 

     int duration = Toast.LENGTH_LONG; 
      Toast toast = Toast.makeText(context, 
         "password is"+Password, duration); 
      toast.show(); 
    } 
+0

당신은'PreferenceManager .getDefaultSharedPreferences (context);'로'sp'를 초기화하려고 했습니까 onReceive? –

+0

네, 초기화 ... – M410

답변

1

귀하의 활동에 환경 설정을 할 때.

사용 중 하나가 참조로 기본 파일

SharedPreferences sp = PreferenceManager 
     .getDefaultSharedPreferences(this); 
그러나이 아니 혼합물을 열어이 "myPrefs"

SharedPreferences sp = context.getSharedPreferences("myPrefs", 
      Context.MODE_PRIVATE); 

라는 특정 환경 설정 파일을 엽니 하나이 다른 환경 설정 파일.

+0

"private void savePreferences (String key, String value)"메서드를 편집하는 방법을 알려주시겠습니까? – M410

+0

위 답변에 추가되었습니다. – Kuffs

+0

"SharedPreferences sp = PreferenceManager .getDefaultSharedPreferences (this);"를 사용할 때 확인합니다. " 브로드 캐스트 리시버에서 오류가 발생했습니다! – M410

관련 문제