آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

javac  11 سال پیش  11 سال پیش
0 0

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

 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 سال پیش
+5 0

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

ببین 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);

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

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

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