Autore Topic: Problema getSharedPreferences - BroadcastReceiver  (Letto 540 volte)

Offline Matti111

  • Utente junior
  • **
  • Post: 68
  • Respect: +11
    • Mostra profilo
    • Ad Banners
  • Dispositivo Android:
    Nokia Lumia 800
  • Play Store ID:
    Ronca
  • Sistema operativo:
    Windows 7
Problema getSharedPreferences - BroadcastReceiver
« il: 01 Febbraio 2012, 11:03:24 CET »
0
Ciao  a tutti,
ho implementato una sveglia e volevo fare in modo di "sentire" quando la sveglia sta suonando (lancio un BroadcastReceiver con un setRepeating). Per fare ciò ho usato un getSharedPreferences che scrive "attiva" quando parte il Broadcast e quindi quando suona.

Il codice non mi da errori, ma sta di fatto che all'interno del Broadcast non mi salva nulla e quando vado a rileggere il file nell'activity non ci vedo scritto "Attiva".

Qui il codice:

Codice: [Seleziona]
public class MyBroadcastReceiver extends BroadcastReceiver {
        //File sveglia sta suonando
                private final static String MY_PREFERENCES_ATTIVA = "MyPref_attiva";
                private final static String TEXT_DATA_KEY_ATTIVA = "textData_attiva";
                SharedPreferences.Editor editor;
                SharedPreferences prefs;
        @Override
        public void onReceive(Context context, Intent intent) {
               
                // Vibrate the mobile phone
                Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
                vibrator.vibrate(2000);
                //Salvo che la sveglia non sta suonando
                          prefs = context.getSharedPreferences(MY_PREFERENCES_ATTIVA, Context.MODE_MULTI_PROCESS);
                          editor = prefs.edit();
                          editor.putString(TEXT_DATA_KEY_ATTIVA, "Attiva");
                          editor.commit();
                 //fine salvo dati per la sveglia
        }
}


Questo è invece il codice con cui chiamo il broadcast
Codice: [Seleziona]
private void SetAlarm(int millisecondi) {
                // TODO Auto-generated method stub
                //Set Alarm
                intent_sveglia = new Intent(getApplicationContext(), MyBroadcastReceiver.class);
                pendingIntent_sveglia = PendingIntent.getBroadcast(getApplicationContext(), 234324243, intent_sveglia, PendingIntent.FLAG_CANCEL_CURRENT);
                alarmManager_sveglia = (AlarmManager) getSystemService(ALARM_SERVICE);
                alarmManager_sveglia.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+ millisecondi+1000,5000, pendingIntent_sveglia);
                        Toast.makeText(getApplicationContext(), "La sveglia suonerà fra " + millisecondi/1000/60/60 + "h "+ (millisecondi/1000/60)%60 + "m " + (millisecondi/1000)%60 + "s",Toast.LENGTH_LONG).show();
                }


Non riesco a venirne a capo.

Grazie
Mattia
Tutto quello che c'è da sapere sul mobile advertising
AdBanner