بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

مشکل کارنکردن آلارم منیجر در یک دقیقه اول شروع؟

مدیریت گفتگو
محسن گودرزی 10 سال پیش
آخرین تغییر: 10 سال پیش

دوستان سلام.

من تو برنامم دارم از یک آلارم منیجر استفاده می کنم که از set repeating استفاده می کنه.ولی بعد از استارت، حدود یک دقیقه تاخیر داره و بعد شروع میکنه به کار کردن؟(api +19)

کسی میتونه راهنماییم کنه که چطور میشه این تاخیر رو حل کرد؟ممنون

نظرات

Spirit 10 سال پیش
طبق تغییراتی که دادن از این API به «بعد» متد set هشدارها رو ممکنه سر زمان تعیین شده اجرا نکنه (و یا بکنه) ، بجاش باید از متد setExact استفاده کنید (استفاده از AlarmManager و متد هاش خیلی ریزه کاری داره).
وحید 10 سال پیش
من از نظر دوستمون Nosrati@ خبر ندارم ولی این اتفاق می افته که شما شاید دقیقه و ثانیه رو ست نکردی و شما انتظار داری که مثلا الارم ساعت 8:50 دقیقه شروع به کار کنه و الارم 859 ثانیه شروع به کار می کنه.
محسن گودرزی 10 سال پیش
ممنون از راهنماییتون. من میخوام هر چند ثانیه repeat بشه.ولی بعد از یک دقیقه شروع به کار می کنه.برای setRepeating هم میشه مثلsetExact عمل کرد؟
Spirit 10 سال پیش
اینایی که میگم برداشتم از مستندات اندروید هست، باز تو مستندات گفته اگر میخوایید آلارم های تکرار شونده حتما سر زمان تنظیم شده اجرا بشن از setExact استفاده کنید و هر بار این آلارم اجرا شد همونجا مورد بعدی رو هم تنظیم کنید - این رو هم گفتن که اگر targetSdkVersion برنامه از ۱۹ پایین تر باشه متد set و setRepeating بصورت دقیق عمل خواهند کرد.
عزیزی 10 سال پیش
سلام خط مربوط به setRepeating داخل برنامه تان رو بذارید و متغیری هم اگر مربوط به دادن زمان می باشد رو هم مقدارش رو بذارید تا بهتر بتوانیم راهنمایی کنیم

پاسخ‌ها 2

محسن گودرزی 10 سال پیش

من ازین تکه کد آماده استفاده کردم!

Intent alarmIntent = new Intent(this, AlarmReceiver.class);                               
                pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
                manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
                manager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 5000, pendingIntent);

بعد از یک دقیقه اول دقیقا هر 5ثانیه کار میکنه.ولی دقیقه اول نه. توی اینترنت هم که سرچ کردک گفته بودن که از ای.پی.ای19 به بعد این مشکل رو داره.حالا میگم راهی نیست بشه حلش کرد؟
            

نظرات

عزیزی 10 سال پیش

سلام

همین کد شما رو با این تفاوت که به جای اینکه از getBroadcast استفاده کنم از getActivity استفاده کردم و روی گوشی سامسونگ s4 درست جواب داد از alarmManager زیاد استفاده کردم ولی چنین مشکلی نداشتم

  final Intent alarmIntent = new Intent(this, AlarmReceiver.class);
final PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, alarmIntent, 0);
btnAlarm.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {

AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
manager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 5000, pendingIntent);
}
});

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .