दिलचस्प पोस्ट
window.onload बनाम <body onload = "" /> सीखना नियमित अभिव्यक्ति प्लेयर के शीर्ष पर अनधिकृत ओवरले के साथ एंड्रॉइड यूट्यूबप्लेयर JQuery संवाद और Datepicker प्लगइन्स के साथ परेशानी वर्तमान गिट शाखा को एक मास्टर शाखा बनाएं tkinter TclError: बिटमैप फ़ाइल पढ़ने में त्रुटि मैं वीबी.नेट में कैसे काम करूं? कैसे pymongo के साथ mongodb सॉर्ट करने के लिए क्या jQuery "चयनकर्ताओं" का कैशिंग करता है? सबसे सख्त वास्तविक दुनिया मैक्रोज़ / प्री-प्रोसेसर का दुरुपयोग क्या है जो आप कभी भी सामने आए हैं? Angularjs के $ http का उपयोग करते समय प्रतिक्रिया शीर्षकों को पढ़ना एंड्रॉइड पर मीडियास्टोर का उपयोग करते हुए मैं कैमरे से डिस्क पर डेटा कैसे बचा सकता हूं? विधि हस्ताक्षर में नया कीवर्ड स्ट्रिंग्स को यूआरएल और फाइलनाम सुरक्षित बनाने के लिए सिनिटिंग करना? एक टंकिनर एप्लिकेशन को व्यवस्थित करने का सर्वोत्तम तरीका

एंड्रॉइड अलार्म मैनेजर फोन नहीं चल रहा है

मैं एक गतिविधि को एक निश्चित समय पर प्रदर्शित करना चाहता हूं। इसके लिए, मैं अलार्म मैनेजर का उपयोग कर रहा हूं। डिवाइस ठीक हो जाने पर यह ठीक काम करता है, लेकिन यह जागता नहीं है कि यह सो रहा है।

अलार्म सेट करने के लिए मेरा कोड:

Calendar alarmTime = Calendar.getInstance(); alarmTime.set(Calendar.HOUR_OF_DAY, alarm.hour); alarmTime.set(Calendar.MINUTE, alarm.minute); alarmTime.set(Calendar.SECOND, 0); if (alarmTime.before(now)) alarmTime.add(Calendar.DAY_OF_MONTH, 1); Intent intent = new Intent(ctxt, AlarmReceiver.class); intent.putExtra("alarm", alarm); PendingIntent sender = PendingIntent.getBroadcast(ctxt, alarm.id, intent, PendingIntent.FLAG_UPDATE_CURRENT); alarmManager.set(AlarmManager.RTC_WAKEUP, alarmTime.getTimeInMillis(), sender); 

मेरा प्रसारण रिसीवर:

 @Override public void onReceive(Context context, Intent intent) { try { Bundle bundle = intent.getExtras(); final Alarm alarm = (Alarm) bundle.getSerializable("alarm"); Intent newIntent; if (alarm.type.equals("regular")) { newIntent = new Intent(context, RegularAlarmActivity.class); } else if (alarm.type.equals("password")) { newIntent = new Intent(context, PasswordAlarmActivity.class); } else if (alarm.type.equals("movement")) { newIntent = new Intent(context, MovementAlarmActivity.class); } else { throw new Exception("Unknown alarm type"); } newIntent.putExtra("alarm", alarm); newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(newIntent); } catch (Exception e) { Toast.makeText(context, "There was an error somewhere, but we still received an alarm", Toast.LENGTH_SHORT).show(); Log.e("AlarmReceiver", Log.getStackTraceString(e)); } } 

यह कोड डिवाइस को नहीं जगाता। हालांकि, जब मैं इसे वापस फिर से चालू करता हूं, तो वे प्रदर्शित होते हैं। मुझे उन्हें स्क्रीन चालू करने की आवश्यकता है। क्या आप इस समस्या से मेरी सहायता कर सकते हैं?

वेब के समाधान से एकत्रित समाधान "एंड्रॉइड अलार्म मैनेजर फोन नहीं चल रहा है"

मुझे एक ऐसी ही समस्या थी और इसका समाधान WakeLocker का उपयोग करना था यह किया जाना चाहिए (प्राथमिकता रिसीवर में पहली चीज़ के रूप में), या अलार्म प्राप्त होने पर डिवाइस जाग जायेगा, लेकिन context.startActivity(newIntent) से पहले फिर से context.startActivity(newIntent)context.startActivity(newIntent) ; कहा जाता है। (मैंने ऐसा व्यवहार भी किया है जब ऐसा नहीं होता है, तो यह थोड़ा मनमानी लगता है) तो आसान और त्वरित उत्तर: इस स्रोत कोड के साथ वॉकलॉकर नामक एक नई कक्षा बनाएं:

 package mypackage.test; import android.content.Context; import android.os.PowerManager; public abstract class WakeLocker { private static PowerManager.WakeLock wakeLock; public static void acquire(Context ctx) { if (wakeLock != null) wakeLock.release(); PowerManager pm = (PowerManager) ctx.getSystemService(Context.POWER_SERVICE); wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, MainActivity.APP_TAG); wakeLock.acquire(); } public static void release() { if (wakeLock != null) wakeLock.release(); wakeLock = null; } } 

और अपने रिसीवर कॉल में WakeLocker.acquire(context); पहली बात के रूप में अतिरिक्त: यह भी WakeLocker.release(); कॉल करने के लिए साफ हो जाएगा WakeLocker.release(); एक बार अपने अलार्म अपनी बात किया है

सबसे अधिक संभावना है, अलार्म डिवाइस जाग रहा है। हालांकि, AlarmManager प्रसारण स्क्रीन को चालू नहीं करेगा, और आपकी गतिविधि को शुरू होने से पहले उपकरण अच्छी तरह से सो सकते हैं।

आपको onReceive() को कॉल करने से पहले WakeLock को प्राप्त करने की आवश्यकता होगी, और उपयोगकर्ता को आपकी गतिविधि का जवाब देने के बाद WakeLock रिलीज करना होगा।

सेवाओं के लिए (शायद गतिविधि के लिए भी काम करता है), अपने अलार्म रीसेवर को WakefulBroadcastReceiver से WakefulBroadcastReceiver , यह आपके लिए WAKE_LOCK प्राप्त करता है, जबकि आशय संसाधित किया जा रहा है।

WakefulBroadcastReceiver डॉक्स – https://developer.android.com/reference/android/support/v4/content/WakefulBroadcastReceiver.html

डिवाइस जाग मार्गदर्शिका रखें – https://developer.android.com/training/scheduling/wakelock.html