Prima di tutto, non potevo nemmeno scegliere il metodo da utilizzare, sto leggendo per ore e qualcuno dice di usare "Gestori", qualcuno dice di usare "Timer". Ecco cosa cerco di ottenere:Android - Esegui un thread ripetutamente entro un timer
A preferenza, esiste un'impostazione (casella di controllo) che abilita/disabilita il lavoro ripetuto. Mentre quella casella è selezionata, il timer dovrebbe iniziare a funzionare e il thread dovrebbe essere eseguito ogni x secondi. Non appena la casella di controllo è deselezionata, il timer dovrebbe fermarsi.
Ecco il mio codice:
Verificare se se casella è selezionata o meno, se selezionato vuoto 'refreshAllServers' sarà eseguito, che fa il lavoro con timer.
boolean CheckboxPreference = prefs.getBoolean("checkboxPref", true);
if(CheckboxPreference == true) {
Main main = new Main();
main.refreshAllServers("start");
} else {
Main main = new Main();
main.refreshAllServers("stop");
}
Il vuoto refreshAllServers che fa il processo timer:
public void refreshAllServers(String start) {
if(start == "start") {
// Start the timer which will repeatingly execute the thread
} else {
// stop the timer
}
Ed ecco come eseguo il mio thread: (funziona bene senza timer)
Thread myThread = new MyThread(-5);
myThread.start();
Quello che ho cercato?
Ho provato qualsiasi esempio che potrei vedere da Google (gestori, timer) nessuno di loro ha funzionato, sono riuscito a avviare il timer una volta, ma l'interruzione non ha funzionato. Il più semplice & codice comprensibile che ho visto nella mia ricerca era questo:
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
// your code here
}
},
5000
);
vedere se la risposta [qui] (http://stackoverflow.com/questions/8098806/where-do-i-create-and-use-scheduledthreadpoolexecutor-timertask-or-handler/8102488#8102488) aiuta. – yorkw