निष्पादित नहीं करता है इसलिए मुझे ब्रॉडकास्ट रिसीवर और अलार्ममेनगर मिला है।अलार्ममेनगर हमेशा ब्रॉडकास्ट रिसीवर
चलो कहते हैं कि मैं तो जैसे विचाराधीन उद्देश्य बनाएँ:
Intent i;
i = new Intent(context, MyReceiver.class);
i.setAction(MyReceiver.ACTION_1);
i.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
pendingIntent1 = PendingIntent.getBroadcast(context, 1, i, PendingIntent.FLAG_UPDATE_CURRENT);
i = new Intent(context, MyReceiver.class);
i.setAction(MyReceiver.ACTION_2);
i.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
pendingIntent2 = PendingIntent.getBroadcast(context, 2, i, PendingIntent.FLAG_UPDATE_CURRENT);
और इसलिए तरह अलार्म अनुसूची:
now = SystemClock.elapsedRealtime();
long time1 = now + 10 * 1000;
long time2 = time1 + 60 * 1000;
am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, time1, pendingIntent1);
am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, time2, pendingIntent2);
मैं अब कि मेरे प्रसारण रिसीवर काफी मज़बूती से ACTION_1
के लिए प्रसारण हो जाता है का सामना कर रहा हूँ , जबकि ACTION_2
अक्सर वितरित नहीं किया जा रहा है। तो onReceive
कार्रवाई ACTION_2
को धारण करने के इरादे से शायद ही कभी या कभी निष्पादित नहीं होता है। वह कैसे आता है मैंने सोचा, *_WAKEUP
सुनिश्चित करता है कि प्रसारण भी वैसे भी वितरित किए जा रहे हैं?
[अपडेट 09/15/2015] - परीक्षण उद्देश्यों के लिए मैं अपने onReceive
विधि में एक लॉग संदेश मुद्रित करने का प्रयास कर रहा हूं। अभी भी काम नहीं कर रहा है। - मैंने अब AlarmManager पर setExact का उपयोग करने का प्रयास किया है। अभी भी काम नहीं कर रहा है। - मैंने WakefulBroadcastReceiver
का उपयोग करने का भी प्रयास किया है। अभी भी काम नहीं कर रहा है। - हालांकि, मुझे पता चला है कि बैटरी चार्ज स्थिति में डिवाइस विश्वसनीय रूप से जागता है। इस समस्या का कारण क्या हो सकता है? मैंने हर जगह पढ़ा है कि लंबित इरादे से अलार्म मैनेजर द्वारा ट्रिगर किए जाने पर प्रसारण रिसीवर को निष्पादित करने की गारंटी है (और onReceive
में बहुत अधिक चीज़ें नहीं कर रही हैं)। क्या मेरे पास शायद मेरे फोन पर कुछ आक्रामक ऊर्जा बचत नीति है जो मैं वास्तव में काम नहीं कर सकता (बिना लंबे समय तक जागने के लॉक प्राप्त किए, टिप्पणियां देख सकता हूं)?
[अपडेट 09/19/2015] मैंने Google Play पर कुछ अलार्म घड़ी ऐप (https://play.google.com/store/apps/details?id=com.alarmclock.xtreme.free) का परीक्षण किया है और यह विश्वसनीय रूप से फोन को भी जगा नहीं देता है। मुझे लगता है, यह वास्तव में एक बग है और मेरी गलती नहीं है। मुझे लगता है कि मैं जागने के लॉक समाधान के साथ रहूँगा, मुझे लगता है।
'शोएट'' का मूल्य क्या है? –
ओप क्षमा करें, तय करें। यह 'समय 1 'होना था। स्क्रीन मूल रूप से एक संवाद (एक पारदर्शी गतिविधि में) दिखाने के बारे में है जब स्क्रीन बंद हो गई थी (यहां 10 सेकंड) और स्क्रीन को बहुत लंबे समय तक बंद कर दिया गया था (यहां 10 + 60 = 70 सेकेंड)। – flxapps
मैंने अब जागने की लॉक प्राप्त करके अपनी समस्या हल कर ली है: 'wakeLock.acquire (time2 - अब + 5000);' (फ़ोन को जागृत रखना - ऊपरी उदाहरण में - 70 सेकंड प्लस 5 सेकेंड बफर के रूप में) - हालांकि, मुझे लगता है कि यह एक बदसूरत समाधान है। तुम क्या सोचते हो? क्या यह वैध या बहुत गंदा है, शायद समस्याएं पैदा कर रहा है? – flxapps