मेरे प्रश्न का एक हिस्सा, मैं "नौगेट" में 15 मिनट के अंतराल के साथ नौकरी कैसे स्थापित कर सकता हूं, उसका उत्तर यहां "ब्लिज़र्ड" द्वारा उत्तर दिया गया था:
Job Scheduler not running on Android N
उन्होंने समस्या के बारे में बताया और निम्नलिखित तरीके का उपयोग करने का सुझाव दिया:एंड्रॉइड एन में नौकरी शेड्यूलर कम से कम 15 मिनट अंतराल
JobInfo jobInfo;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
jobInfo = new JobInfo.Builder(JOB_ID, serviceName)
.setMinimumLatency(REFRESH_INTERVAL)
.setExtras(bundle).build();
} else {
jobInfo = new JobInfo.Builder(JOB_ID, serviceName)
.setPeriodic(REFRESH_INTERVAL)
.setExtras(bundle).build();
}
हालांकि, का उपयोग करते हुए सुझाव दिया
.setMinimumLatency(REFRESH_INTERVAL)
सिर्फ काम एक बार शुरू होता है;
लेकिन मैं एंड्रॉइड नौगेट डिवाइस (हैंडलर या अलार्म मैनेजर का उपयोग नहीं कर रहा) पर लगभग 30 सेकंड की अवधि के साथ आवधिक कैसे प्राप्त करूं?
प्रत्येक 30 सेकंड में कुछ करने के अलावा, जब आपका ऐप अग्रभूमि में होता है और उपयोगकर्ता द्वारा सक्रिय रूप से उपयोग किया जाता है, तो उपयोगकर्ताओं की आंखों में अनुचित है, जिन्होंने पृष्ठभूमि ऐप्स द्वारा बैटरी खपत के बारे में जोर से शिकायत की है। – CommonsWare
हालांकि, यदि आपके पास ऐसे उपयोगकर्ता हैं जो नवीनतम फोन उपलब्ध करते हैं तो वे अपने फोन को शुरू करते हैं (शायद वे इंटरनेट के बिना हैं ...), किसी को एक विश्वसनीय पृष्ठभूमि सेवा की आवश्यकता होती है। या आप मुझे बताने की कोशिश कर रहे हैं, कि यह सिर्फ स्पष्ट रूप से संभव नहीं है? तो आप मुझे उन चीजों के बारे में सिखाने की कोशिश किए बिना ऐसा कर सकते हैं। – tomseitz
"यदि आपके पास ऐसे उपयोगकर्ता हैं जो नवीनतम फोन उपलब्ध करते हैं तो वे अपने फोन को शुरू करते हैं" - हर 30 सेकंड में काम करने की आवश्यकता नहीं होती है। "या आप मुझे बताने की कोशिश कर रहे हैं, कि यह सिर्फ स्पष्ट रूप से संभव नहीं है?" - ऐसा कुछ भी नहीं है जो इस भरोसेमंद तरीके से करेगा, जब तक कि आपका ऐप अग्रभूमि में न हो और सक्रिय रूप से उपयोग किया जा रहा हो। प्रलेखन के अनुसार – CommonsWare