Autore Topic: Service ed AlarmManager  (Letto 824 volte)

Offline Lomba1986

  • Utente normale
  • ***
  • Post: 173
  • Respect: +1
    • Mostra profilo
Service ed AlarmManager
« il: 08 Agosto 2012, 12:01:36 CEST »
0
Ciao a tutti, stavo "giochicchiando" con i service e l'AlarmManager e mi è sorto un dubbio...

Si può schedulare il fatto che dopo un certo timeout esegua un'operazione (come ad esempio avviare un servizio)..in tal modo si evita all'utente di programmare TimerTask o thread scomodi... giusto quello che ho detto?

Ora la vera e propria domanda è: come posso fare che dopo un certo timeout (schedulato tramite AlarmManager) il servizio in questione sia stoppato invece che avviato?

io per ora ho solo trovato qualcosa di simile che avvia il thread dopo un certo timeout:

Codice (Java): [Seleziona]
myIntent = new Intent(MainActivity.this, MyAlarmService.class);

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

AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);

Calendar calendar = Calendar.getInstance();

calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
Toast.makeText(MainActivity.this, "Start Alarm", Toast.LENGTH_LONG).show();

però questo avvia solamente...invece io vorrei che dopo un certo timeout, alarmManager eseguisse l'operazione di stopService(intent) o comunque qualcosa che arresstasse il servizio precedentemente avviato...

L'unica idea che mi viene in mente è avviare un secondo servizio e da quello killare il primo e poi eseguire la stopSelf()...

Altri suggerimenti?
Non esistono problemi, ma solo soluzioni...