بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
Alarm Manager Problem
عدم اجرا شدن آلارم در گوشی های مختلف به طور همزمان
دوستان عزیز من یه پروژه دارم که اطلاعات زمان رو از رو دیتابیس میخونه و سر زمانهای مناسب یه اکتویتی رو launch میکنه البته ناگفته نمونه که از broadcast reciever و intent service داخل برنامه استفاده میشه مشکل اینه که در گوشی های مختلف این آلارم در زمانهای یکسانی اجرا نمیشه و بعضا تا 2 دقیقه اختلاف پیش میاد آیا غیر از استفاده از AlarmManager راه کار مناسب تری وجود داره ؟ و یا میشه که این زمان رو دقیق تر کرد؟
این نمونه کد تنظیم Alarm
alarmIntent = PendingIntent.getBroadcast(context, ALARM_ID, intent, PendingIntent.FLAG_CANCEL_CURRENT);
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1) {
//lollipop_mr1 is 22, this is only 23 and above
// alarmMgr.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, then.getMillis()-G.AzanDelayTime, alarmIntent);
alarmMgr.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, then.getMillis(), alarmIntent);
} else if (Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN_MR2) {
//JB_MR2 is 18, this is only 19 and above.
//alarmMgr.setExact(AlarmManager.RTC_WAKEUP, then.getMillis()-G.AzanDelayTime, alarmIntent);
alarmMgr.setExact(AlarmManager.RTC_WAKEUP, then.getMillis(), alarmIntent);
} else {
//available since api1
//alarmMgr.set(AlarmManager.RTC_WAKEUP, then.getMillis()-G.AzanDelayTime, alarmIntent);
alarmMgr.set(AlarmManager.RTC_WAKEUP, then.getMillis(), alarmIntent);
}
0
0
........... (9 سال پیش)
0
0
FLAG_UPDATE_RECENT (9 سال پیش)
برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال
زکریا
9 سال پیش
0
0
سلام از این استفاده کن ان شاء الله مشکلت برطرف بشه
alarmIntent = PendingIntent.getBroadcast(context, ALARM_ID, intent, PendingIntent.FLAG_CANCEL_CURRENT)
if (Build.VERSION.SDK_INT >= 21) {
am.setAlarmClock(new AlarmManager.AlarmClockInfo(then.getMillis(), alarmIntent), alarmIntent);
}else if (Build.VERSION.SDK_INT >= 19) {
am.setExact(AlarmManager.RTC_WAKEUP,then.getMillis(), alarmIntent);
}else {
am.set(AlarmManager.RTC_WAKEUP,then.getMillis(), alarmIntent);
}
پاسخ به سوال
Smkm79
9 سال پیش
0
0
سلام یعنی منظرتون اینه که با استفاده تابع sealarmclock تو ورژن های جدید اون مشکل حل میشه؟
تست میکنم ببینم چی مشه.
پاسخ به سوال
زکریا
9 سال پیش
0
0
بله از api 21 و بالاتر احتمال تاخیر وجود داره برا همین از setAlarmClock استفاده کردم که مشکل برطرف شده
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .