Mi riscrivo da capo il codice...
public class MainActivity extends AppCompatActivity {
AlarmManager alarmManager;
PendingIntent pendingIntent;
Calendar calendar;
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
calendar=Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY,20);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
intent=new Intent(getApplicationContext(),MyService.class);
pendingIntent=PendingIntent.getService(getApplicationContext(),0,
intent,0);
alarmManager=(AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),
pendingIntent);
}
}
Funziona alla perfezione!
Ho ripassato anche la modalità ELAPSED_REALTIME:
public class MainActivity extends AppCompatActivity {
AlarmManager alarmManager;
PendingIntent pendingIntent;
Calendar calendar;
Intent intent;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.button);
intent=new Intent(getApplicationContext(),MyService.class);
pendingIntent=PendingIntent.getService(getApplicationContext(),0,
intent,0);
alarmManager=(AlarmManager)getSystemService(ALARM_SERVICE);
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime()+20*1000,
pendingIntent);
}
});
}
}
E da quanto ho sperimentato, è indipendente dal fatto che durante l'intervallo il dispositivo venga spento o no.
Nessun commento:
Posta un commento