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

مشکل ، آلارم منجر + سرویس

مدیریت گفتگو
javac 11 سال پیش
آخرین تغییر: 11 سال پیش

در یک دیالوگ اطلاعات مربوط به ساعت آلارم رو دریافت می کنم و با استفاده از کد زیر یک آلارم رو ست میکنم :

 Intent intent2 = new Intent(G.currentActivity, AlarmService.class);
pi = PendingIntent.getService(G.context, 0, intent2, PendingIntent.FLAG_UPDATE_CURRENT);

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2015);
calendar.set(Calendar.MONTH, 0);
calendar.set(Calendar.DAY_OF_MONTH, 3);
calendar.set(Calendar.HOUR, hour);
calendar.set(Calendar.MINUTE, min);
calendar.set(Calendar.SECOND, 0);
G.alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi);

به محض تایید دیالوگ متد oncreate   , بعدش متد onStart سرویس فراخوانی میشن . در صورتی که باید صبر کنه تا آلارم منجر خبر بده که الان یک الارم داریم و بگه: سرویس اجرا بشو!  نه اینکه به مجض ست شدن alarmManager سرویس هم اجرا بشه!!

 

نظرات

پاسخ‌ها 1

miladint 11 سال پیش

چون ممکنه دوستان دیگه هم نیازشون بشه کاملا توضیح میدم امیدوارم که مفید باشه

ببین Javac عزیز بنده این کارو کردم با تحقیقاتی که انجام دادم

داخل getalarmtime: 

  protected long getAlarmTime()
{

Calendar cad=Calendar.getInstance(); cad.set(Calendar.HOUR, 0); cad.set(Calendar.MINUTE, 0); cad.set(Calendar.SECOND, 0); cad.set(Calendar.AM_PM, Calendar.AM );

بعد اومدم آلارم ها رو ست کردم

 private void setAlarm(long alarmTime,int id)
{

Alarms alarm =new Alarms(); alarm.setId(id); alarm.setRepeadEveryDay(true); alarm.setTime(alarmTime); alarm.setActive(true); alArms.add(alarm); addAlarmViewOnUi(alarm); createPendingIntent(alarmTime,id); libFile.setTotalAlarm(id); libFile.setAlarmRepeatEveryDay(id, true); libFile.setAlarmTime(id, alarmTime); libFile.setAlarmActive(id, true);

و سپس یه pendingintent

 private void createPendingIntent(long activeAlarmTime, int id) 
	{
Intent intent = new Intent(this, AlarmReceiver.class); intent.putExtra("ID_ALARM", id); PendingIntent pendingIntent = PendingIntent.getBroadcast(this, id, intent, PendingIntent.FLAG_CANCEL_CURRENT); AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, activeAlarmTime, 24*60*60*1000, pendingIntent);

امیدوارم راهنمایی خوبی باشه ، نمونه های مختلفی رو امتحان کن من اینقدر کلنجار رفتم تا درست شد منم اولش کلا آلارم نمیزد اگه از شما همون موقع میزنه :) 

نظرات

javac 11 سال پیش
متاسفانه مشکل همچنان پابرجاست! کلا مشکلم اینه که service ای که تعیین کردم ، زمان آلارم اجرا بشه همون باراول یکبار اجرا میشه و سریع های بعدی هم دوباره اجرا میشه . اون بار اولش مشکل ساز شده نباید سرخود باشه که!! باید زمان رسیدن آلارم سرویس اجرا بشه و یه کار انجام بده.....:}
miladint 11 سال پیش
کد سرویستو بزار قسمتی که مشکل داری رو تا به بررسی بکنم
javac 11 سال پیش
به شکل مضحکانه و مسخره ای خود به خود درست شد!!!! :))

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