Autore Topic: Evento ogni tot numero di secondi  (Letto 552 volte)

Offline cnosso

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: 0
    • Mostra profilo
Evento ogni tot numero di secondi
« il: 17 Maggio 2016, 16:26:15 CEST »
0
Sto scrivendo un'app in cui vorrei che ogni certo numero di secondi ("nSecondi") un punteggio venisse aumentato
di uno.
Girovagando su Internet ho trovato che va usato un "AlarmManager", ma il metodo "setAlarm()" qui sotto NON
funziona, cioe' funziona ma UNA VOLTA SOLA, se imposto "nSecondi=3" il punteggio aumenta di uno dopo i primi 3
secondi e poi si ferma, non aumenta piu.
Ho provato a usare "setRepeating()" al posto di "set()", ma NON SO' come impostare i campi di "setRepeating()"
nelle prove che ho fatto NON ho ottenuto nulla.

Vorrei che il punteggio aumentasse di uno ogni "nSecondi" fino a quando non viene premuto un certo bottone.
QUALCUNO PUO' AIUTARMI?

Codice (Java): [Seleziona]
public void setAlarm()
{
   BroadcastReceiver receiver = new BroadcastReceiver()
   {
      @Override public void onReceive( Context context, Intent x)
      {
         //context.unregisterReceiver( this ); // this == BroadcastReceiver, not Activity
         punteggio++;
         scriviPunteggio();
       }
    };
    registerReceiver( receiver, new IntentFilter("tempo_nSecondi") );

    PendingIntent pintent = PendingIntent.getBroadcast( getApplicationContext(), 0, new Intent("tempo_nSecondi"), 0 );
    AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);

    manager.set( AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 1000*nSecondi, pintent );
}

Offline tonno16

  • Utente storico
  • *****
  • Post: 1231
  • Respect: +60
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Evento ogni tot numero di secondi
« Risposta #1 il: 18 Maggio 2016, 08:40:54 CEST »
0
Devi usare il metodo .setRepeating() e non .set()

Offline cnosso

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: 0
    • Mostra profilo
Re:Evento ogni tot numero di secondi
« Risposta #2 il: 18 Maggio 2016, 12:32:35 CEST »
0
Ho provato a usare "setRepeating()" al posto di "set()", ma NON SO' come impostare i campi di "setRepeating()" nelle prove che ho fatto NON ho ottenuto nulla.


Post unito: 18 Maggio 2016, 12:33:45 CEST
Vorrei che il punteggio aumentasse di uno ogni "nSecondi" fino a quando non viene premuto un certo bottone.

Offline tonno16

  • Utente storico
  • *****
  • Post: 1231
  • Respect: +60
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Evento ogni tot numero di secondi
« Risposta #3 il: 18 Maggio 2016, 12:38:00 CEST »
0
Non puoi semplicemente usare un CountDownTimer?

Offline cnosso

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: 0
    • Mostra profilo
Re:Evento ogni tot numero di secondi
« Risposta #4 il: 18 Maggio 2016, 12:40:45 CEST »
0
Cos'e' un "CountDownTimer" ?
Puoi farmi un esempio?