Sicuramente conviene rivedere quello che ho già usato:
if(ringtone!=null){ ringtone.play(); TimerTask timerTask=new TimerTask(){ @Override public void run() { ringtone.stop(); } }; Timer timer=new Timer(); timer.schedule(timerTask, 2000); }Si dichiara come qualunque istanza di classe che abbia dei metodi da implementare.
TimerTask timerTask=new TimerTask(){ }A questo punto vengono da sole le richieste di mettere il punto e virgola finale e di implementare i metodi.
E si trasforma così:
TimerTask timerTask=new TimerTask(){ @Override public void run() { // TODO Auto-generated method stub } };Quindi ci mettiamo l'azione da svolgere dopo il tempo stabilito.
TimerTask timerTask=new TimerTask(){ @Override public void run() { Toast.makeText(getApplicationContext(), "QUESTA E' L'AZIONE DA SVOLGERE DOPO IL TEMPO STABILITO", Toast.LENGTH_LONG).show(); } };
Fin qui non dice niente. Bisogna impostare il TEMPO dopo il quale va eseguito questo TimerTask.
E si introduce la classe Timer.
Timer timer=new Timer(); timer.schedule(timerTask, 5000);quindi si usa il metodo schedule dell'istanza di Timer, il quale può avere come secondo parametro un ritardo in millisecondi come in questo caso, ma vedo adesso che può anche avere una data alla quale far eseguire il TimerTask (e credo che nel nome della classe Date sia implicita anche la possibilità di impostare un'ora anziché una data).
Proviamo:
Bene. Con il Toast ottengo un messaggio di errore:
Can't create handler inside thread that has not called Looper.prepare(). Vado ad approfondire e trovo questo e risolvo così:
mHandler=new Handler(Looper.getMainLooper()){ @Override public void handleMessage(Message message){ Toast.makeText(getApplicationContext(), "QUESTA E' L'AZIONE DA SVOLGERE DOPO IL TEMPO STABILITO",Toast.LENGTH_LONG).show(); } }; TimerTask timerTask=new TimerTask(){ @Override public void run() { Message message=mHandler.obtainMessage(); message.sendToTarget(); } }; Timer timer=new Timer(); timer.schedule(timerTask, 5000);Devo approfondire questi Handler.
Nessun commento:
Posta un commento