Sto cercando di creare una classe che mi permetta di fare qualcosa ogni 5 secondi e voglio essere in grado di avviare e fermare questa operazione da qualsiasi altra classe. Ecco la mia classe di timer:
public class Timer extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
Handler handler = new Handler();
Runnable runnable = new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(), "DISPLAY MESSAGE", Toast.LENGTH_SHORT).show();
handler.postDelayed(runnable, 5000);
}
};
}
Ora le mie conoscenze sulla programmazione orientata agli oggetti non sono buone come pensavo, sono abituato a creare istanze di classi e ad usare le proprietà delle classi, ma come posso usare le proprietà delle classi una volta sull'intero programma, faccio creare ancora istanze della classe Timer in altre classi? Dovrei usare il pattern Singleton, o dovrei rendere la classe statica?
Quindi fondamentalmente in Class1 vorrei avviare il timer in questo modo:
Timer.runnable.run();
E forse in Class2 interrompi il runnable avviato in Class1 in questo modo:
Timer.handler.removeCallbacks(runnable);
Sto cercando un consiglio e una spiegazione sul modo corretto di programmare questa idea e perché.
Grazie!