2012-01-21 3 views
3

간단한 알람 시계를 만들 예정입니다. 사용자 인터페이스가 있으며 번들을 사용하여 알람에 대한 사용자 구성 (볼륨 값 또는 톤 유형과 유사)을 전송합니다.Android에서 내 번들 데이터 서비스를 업데이트하는 방법은 무엇입니까?

Bundle b = new Bundle(); 
b.putString("tone", toneS.getSelectedItem().toString()); 

그리고 브로드 캐스트 리시버로 보내 : 주요 활동에서 내가 가진

Intent intent = new Intent(SetAlarm.this, MessageReceiver.class); 
      intent.putExtras(setBoundle()); 

그리고이 방법으로 브로드 캐스트 리시버에 번들 나타납니다

Bundle b2 = new Bundle(); 
     b2 = intent.getExtras(); 

그것은 완벽하게 작동 처음에는 그 이후지만 주요 활동의 번들에는 UI의 새로운 데이터가 있지만 BroadcastReceiver는 이전 데이터 만 유지합니다.

누구든지 문제를 설명 할 수 있습니까?

답변

2

이 작업을 수행 할 때마다 보내는쪽에 새 번들을 만들고 그 안에 문자열을 넣습니다.
발신자 측의 의도는 원하는만큼 재사용 할 수 있습니다.

희망이 있습니다.

3
나는 비슷한 문제와 직면했다

나는이 같은 PI 인스턴스를 생성이 문제의 해결책은 숨기기 우리가 instance.Firstly PandingIntent 방법에 대한 것을 알고있어 그물에 많은 연구 후 : -

pendingIntent = PendingIntent.getService(SettingsScreen.this, 0, myIntent, 0); 

하지만 당신은 할 것이다 당신이 PendingIndent 인스턴스 parameter.so 마지막으로 PendingIntent.FLAG_CANCEL_CURRENT 또는 FLAG_UPDATE_CURRENT을 넣어 가지고 PendingIntent의 인스턴스와 너무 번들 데이터를 업데이트 할 경우 : -

pendingIntent = PendingIntent.getService(SettingsScreen.this, 0, myIntent, 
PendingIntent.FLAG_CANCEL_CURRENT); 

또는

pendingIntent = PendingIntent.getService(SettingsScreen.this, 0, myIntent, 
PendingIntent.FLAG_UPDATE_CURRENT); 

이것은 내 문제를 해결했습니다. 나는 당신의 문제도 해결할 수 있기를 바랍니다.

관련 문제