के भीतर दोहराए गए थ्रेड को चलाएं सबसे पहले, मैं उपयोग करने की विधि भी नहीं चुन सका, मैं अब घंटों के लिए पढ़ रहा हूं और कोई कहता है 'हैंडलर' का उपयोग करते हैं, कोई कहता है 'टाइमर'। यहां मैं प्राप्त करने का प्रयास करता हूं:एंड्रॉइड - एक टाइमर
वरीयताओं पर, एक सेटिंग (चेकबॉक्स) है जो दोहराने वाली नौकरी को सक्षम/अक्षम करने के लिए है। चूंकि चेकबॉक्स चेक किया गया है, टाइमर काम करना शुरू कर देना चाहिए और थ्रेड को हर एक्स सेकंड निष्पादित किया जाना चाहिए। चूंकि चेकबॉक्स अनचेक किया गया है, टाइमर बंद होना चाहिए।
जांच की जा रही है कि क्या करता है, तो चेकबॉक्स या चेक नहीं किया गया है, अगर जाँच की 'refreshAllServers' शून्य निष्पादित किया जाएगा जो टाइमर के साथ काम करता है:
यहाँ मेरी कोड है।
boolean CheckboxPreference = prefs.getBoolean("checkboxPref", true);
if(CheckboxPreference == true) {
Main main = new Main();
main.refreshAllServers("start");
} else {
Main main = new Main();
main.refreshAllServers("stop");
}
refreshAllServers शून्य कि टाइमर काम करता है:
public void refreshAllServers(String start) {
if(start == "start") {
// Start the timer which will repeatingly execute the thread
} else {
// stop the timer
}
और यहाँ कैसे मैं अपने धागा निष्पादित है: (घड़ी के बिना अच्छी तरह से काम करता है)
Thread myThread = new MyThread(-5);
myThread.start();
मैं क्या करने की कोशिश की?
मैंने Google (हैंडलर, टाइमर) से देखे गए किसी भी उदाहरण की कोशिश की, उनमें से कोई भी काम नहीं किया, मैं टाइमर शुरू करने में कामयाब रहा लेकिन इसे रोकने से काम नहीं हुआ। simpliest & समझा जा सकता कोड मैं अपने अनुसंधान के क्षेत्र में देखा यह गया था:
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
// your code here
}
},
5000
);
देखने के लिए कि इस सवाल का जवाब [यहां] (http://stackoverflow.com/questions/8098806/where-do-i-create-and-use-scheduledthreadpoolexecutor-timertask-or-handler/8102488#8102488) मदद करता है. – yorkw