Cerchiamo di studiare la sveglia.
Innanzitutto abbiamo un pulsante per l'attivazione e per la disattivazione.
Per il momento creo un pulsante per l'attivazione e uno diverso per la disattivazione.
Il codice è questo:
public class MainActivity extends AppCompatActivity {
AlarmManager alarmManager;
Intent intent;
PendingIntent pendingIntent;
Button button;
Button button2;
Calendar calendar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.button);
button2=(Button)findViewById(R.id.button2);
intent=new Intent(getApplicationContext(),MyService.class);
pendingIntent=PendingIntent.getService(getApplicationContext(),0,intent,0);
alarmManager=(AlarmManager)getSystemService(ALARM_SERVICE);
calendar=Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY,23);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pendingIntent);
}
});
button2.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
if(alarmManager!=null){
alarmManager.cancel(pendingIntent);
if(pendingIntent!=null)pendingIntent.cancel();
}
}
});
e funziona per una volta, non ripetibile.La normale sveglia funziona per una volta, ma si presenta con un pulsante che consente l'opzione di rinviare o di spegnere del tutto la sveglia. Per spegnerla bisogna zittire la suoneria e disattivare alarmManager, due cose che penso di poter fare.
Per rinviare, si dovrebbe programmare a breve scadenza con un AlarmManager di tipo ELAPSED il riattacco della suoneria.
Nessun commento:
Posta un commento