मैं समय-समय पर (सप्ताह में एक दिन/एक दिन) कुछ कार्य चलाने के लिए चाहता हूं, भले ही मेरा आवेदन बंद हो। क्या यह संभव है?कार्य अवधि की अवधि (सप्ताह में एक बार/सप्ताह में एक बार)
उत्तर
हां यह है, आपको AlarmManager को पुन: संसाधित करने के लिए "अलार्म" को देखने की आवश्यकता है। डिवाइस पर बैटरी जीवन के लिए यह बेहतर है, क्योंकि एक सेवा के विपरीत यह पृष्ठभूमि में लगातार नहीं चलता है। अलार्म broadcast receiver ट्रिगर करता है जो आपके कस्टम कोड को निष्पादित करेगा।
अंतिम नोट के रूप में - अलार्म के समय के लिए दैनिक मूल्य, दैनिक, आधे दैनिक और कई अन्य के लिए enum मान हैं हालांकि आप केवल वास्तविक मूल्य निर्धारित कर सकते हैं।
एक अच्छा उदाहरण का पालन अतः पोस्ट में पाया जा सकता है:
अद्यतन
नई सुविधाओं Android के लिए जोड़ा गया है। यदि आप इसे पढ़ रहे हैं तो मैं आपको सलाह दूंगा कि अब आप GcmNetworkManager देखें। यह बैटरी जीवन को अनुकूलित करता है और प्री-लॉलीपॉप काम करता है। लॉलीपॉप के लिए आप JobScheduler का उपयोग कर सकते हैं। मैं इन कक्षाओं को अलार्ममेनगर पर उपयोग करने की सलाह दूंगा।
एक विकल्प के रूप में मैं वर्तमान सप्ताह तुलना कर रहा हूं
Calendar cal = Calendar.getInstance();
int currentWeekOfYear = cal.get(Calendar.WEEK_OF_YEAR);
SharedPreferences sharedPreferences= this.getSharedPreferences("appInfo", 0);
int weekOfYear = sharedPreferences.getInt("weekOfYear", 0);
if(weekOfYear != currentWeekOfYear){
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("weekOfYear", currentWeekOfYear);
editor.commit();
// Your once a week code here
}
मैं इस की वकालत नहीं कर रहा हूँ अलार्म समाधान की तुलना में बेहतर है। मैं बस एक अलग दृष्टिकोण दिखा रहा हूँ।
मुझे लगता है कि सबसे अच्छा फिट GcmNetworkManager है। असल में इसमें अलार्ममेनगर प्लस दृढ़ता से आपको जो कुछ भी चाहिए, इसलिए रीबूट के बाद नौकरी निष्पादित हो सकती है।
उदाहरण:
PeriodicTask task = new PeriodicTask.Builder()
.setService(MyTaskService.class)
.setTag(TASK_TAG_PERIODIC)
.setPeriod(5L)
.build();
mGcmNetworkManager.schedule(task);
आप सही हैं - यह शायद ऐसा करने का सामान्य तरीका बनने जा रहा है। मैंने 2,5 साल पहले अपना जवाब लिखा था, इसलिए चीजें आगे बढ़ती हैं। मैं तर्क दूंगा कि आपको एंड्रॉइड 5+ के लिए लॉलीपॉप जॉब शेड्यूलर के बारे में जोड़ने की आवश्यकता है क्योंकि आपको 'जीसीएमनेटवर्क प्रबंधक' का उपयोग नहीं करना है। मैं बीटीडब्ल्यू ऊपर उठाया। –
- 1. अवधि
- 2. अवधि
- 3. अवधि की गणना करें
- 4. वैश्विक अस्थायी तालिका में डेटा की अवधि?
- 5. एक आवेदन है कि एक परीक्षण अवधि
- 6. मिलीसेकंड में पार्सिंग अवधि स्ट्रिंग
- 7. जेटेबल पंक्ति अवधि और कॉलम अवधि
- 8. अवधि टैग
- 9. निष्क्रियता अवधि
- 10. कैश की डिफ़ॉल्ट अवधि। एएसपी.नेट
- 11. मैं डेटटाइम को निकटतम अवधि
- 12. एक सटीक अवधि के लिए सोना
- 13. अवधि तत्व
- 14. टाइमआउट अवधि
- 15. परिभाषित चौड़ाई के साथ एक अवधि में लाइन तोड़?
- 16. लपेटें jQuery में कुछ पाठ के चारों ओर एक अवधि
- 17. एक अवधि की रेखा ऊंचाई कैसे प्राप्त करें?
- 18. ग्रोवी समय अवधि
- 19. mysql समय अवधि
- 20. माइक्रोसॉफ्ट रिपोर्ट व्यूअर: सत्र की अवधि समाप्त हो गई त्रुटियां
- 21. net.tcp से कनेक्ट नहीं हो सका: कनेक्शन अवधि एक समय अवधि के लिए चली गई
- 22. डार्ट: शून्य अवधि अवधि टाइमर का उपयोग ईवेंट लूप
- 23. कैसे ऑडियो स्ट्रीम की अवधि हो और
- 24. sed: एकाधिक अवधि
- 25. विशिष्ट समय अवधि
- 26. यूआरएल एनकोड अवधि?
- 27. UIView एनिमेट अवधि: अवधि: एनिमेशन: समापन: एक डिफ़ॉल्ट संक्रमण लगता है?
- 28. आर कार्यों में डॉट/अवधि का उपयोग
- 29. pushviewController/popviewController एनीमेशन अवधि
- 30. बहुपंक्ति अवधि-व्यवहार तत्वों
धन्यवाद, यह वास्तव में मैं क्या देख रहा था। – siemian
@ ग्राहम स्मिथ ब्याज से बाहर, क्या आपने अपना खुद का लिखा था? –
@ ग्राहम स्मिथ आपके द्वारा प्रदान किया गया लिंक टूटा हुआ है। क्या आप एक कामकाजी लिंक प्रदान कर सकते हैं? – Zapnologica