प्री एपीआई 1 का उपयोग करके छोटे अंतराल पर एक विजेट अपडेट करना updatePeriodMillis
से 30 मिनट के न्यूनतम समय से विजेट को अपडेट करने के लिए जाने-जाने की विधि AlarmManager
और BroadcastReceiver
का उपयोग करने के बाद इरादे प्राप्त करने के लिए उपयोग करना था अलार्ममेनर सेट अप करते समय अंतराल का उपयोग किया जाता है।एपीआई 1 9 +
वर्तमान में, नीचे दिए गए कोड का उपयोग करके, विजेट अपडेट किया गया है, लेकिन एंड्रॉइड 5.1 के रूप में, .00RMS से कम के दोहराए गए अंतराल के साथ .setRepeating() का उपयोग करके स्वचालित रूप से कम से कम 60000ms पर अंतराल सेट हो जाएगा।
विजेट में अलार्म सेट onEnabled():
AlarmManager am= (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmManagerBroadcastReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
//After after 3 seconds
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+ 3000, 1000 , pi);
तो AlarmManagerBroadcastReceiver के onReceive() में
:
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "TAG");
//Acquire the lock
wl.acquire();
/*
* ......
* Update Widgets RemoteViews
*/
wl.release();
डॉक्स में setRepeating() के लिए यह कहते हैं:
नोट: एपीआई 1 9 के रूप में, सभी दोहराने वाले अलार्म अचूक हैं। यदि आपके आवेदन को सटीक डिलीवरी के समय की आवश्यकता है तो उसे ऊपर वर्णित अनुसार प्रत्येक बार पुन: निर्धारित करने के लिए एक बार सटीक अलार्म का उपयोग करना होगा। विरासत अनुप्रयोग जिनके लक्ष्य एसडीकेवर्सन एपीआई 1 से पहले है, उनके अलार्म को दोहराए जाने वाले अलार्म समेत सभी अलार्म जारी रहेगा।
यह भी अब राज्यों:
अनुसूची एक दोहराई जाने वाली अलार्म। नोट: समय के संचालन के लिए (टिक्स, टाइमआउट, आदि) यह आसान और भी बहुत कुछ तो आप एक हैंडलर का उपयोग कर विजेट Remoteviews अपडेट करने के बारे जाना होगा
Handler
उपयोग करने के लिए कुशल है? जब बैटरी को बचाने के लिए डिवाइस को सोया जाता है तो आप इसे कैसे रोकेंगे?
क्या कोई विजेट अपडेट करने के लिए कोई अन्य सुझाए गए तरीके हैं?
क्या मेरे उत्तर में कोई समस्या है? या तुमने कोशिश की ? – csenga