मुझे एक एंड्रॉइड एप्लिकेशन में आवधिक कार्य चलाने की जरूरत है।एंड्रॉइड सिस्टम घड़ी बदलना टाइमर बंद कर देता है। मैं उन्हें कैसे पुनरारंभ कर सकता हूं?
final Handler guiHandler = new Handler();
// the task to run
final Runnable myRunnable = new Runnable() {
@Override
public void run() {
doMyStuff();
}
};
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
guiHandler.post(myRunnable);
}
}, 0, 30000); // run every 30 seconds
यह ठीक करता है कि मैं क्या जरूरत है, लेकिन वहाँ एक समस्या है: अगर मैं एमुलेटर या फोन पर समय बदलने के लिए, टाइमर चल रहा बंद हो जाता है मैं इस समय इस तरह एक टाइमर का उपयोग करें। यह वही है लॉग में प्रकट होता है जब मैं समय बदल रहा है:
D/SystemClock( 331): Setting time of day to sec=1278920137
W/SystemClock( 331): Unable to set rtc to 1278920137: Invalid argument
टाइमर के बारे में कुछ भी नहीं है बाधित किया जा रहा है, लेकिन यह स्पष्ट रूप से अब के बाद सिस्टम घड़ी बदल गया है नहीं चलता है। जब तक एप्लिकेशन चल रहा है, तब तक मुझे हर समय चलने के लिए काम की ज़रूरत है।
टाइमर को फिर से कैसे शुरू किया जा सकता है यदि यह इस तरह बंद हो जाता है? यह जांचने के लिए टाइमर या टाइमरटास्क पर कोई विधि नहीं है कि यह वर्तमान में चल रहा है या नहीं, इसलिए मुझे नहीं पता कि इसे फिर से निर्धारित करना है या नहीं। कोई विचार?
इस महान समाधान है कि मैं देख रहा हूँ है! धन्यवाद – JosephT