View Full Version : سوال در مورد Alarm manager
gjmkdyttyhujk
سه شنبه 26 خرداد 1394, 21:57 عصر
سلام دوستان. یه سوال داشتم در مورد Alarm manager. اینکه من می خواستم مثلا در دو ماهه دیگه یه آلارمی به کاربر بدم. از alarmmanager استفاده می کن و مثال هایی که دیدم تاریخ رو به صورت میلی ثانیه دریافت میکرد. می خواستم ببینم میشه از calendar برای این کار استفاده کنم. خیلی ممنونم.
farhadscript
سه شنبه 26 خرداد 1394, 22:04 عصر
ینی از تاریخ کامپیوتر؟ زیاد مطمئن نیست ها
gjmkdyttyhujk
سه شنبه 26 خرداد 1394, 22:06 عصر
ینی از تاریخ کامپیوتر؟ زیاد مطمئن نیست ها
متوجه منظورت نشدم عزیز.
tux-world
سه شنبه 26 خرداد 1394, 22:18 عصر
نیازی نیست حتما به صورت میلی ثانیه باشه. شما بهش میتونین Calendar هم بدید. یه تاریخی رو براش ست کنید خود آلارم منیجر اون موقع صداش در میاد اطلاع میده ولی خیلی باید مواظب این آلارم منیجر باشید اشتباه کنید بابای طرفی که نصب کرده نرم افزار رو سوختست
gjmkdyttyhujk
سه شنبه 26 خرداد 1394, 22:42 عصر
نیازی نیست حتما به صورت میلی ثانیه باشه. شما بهش میتونین Calendar هم بدید. یه تاریخی رو براش ست کنید خود آلارم منیجر اون موقع صداش در میاد اطلاع میده ولی خیلی باید مواظب این آلارم منیجر باشید اشتباه کنید بابای طرفی که نصب کرده نرم افزار رو سوختست
کدی در مورد استفاده از calendar در AlarmManager دارید در اختیار من قرار بدید؟ ضمن اینکه اگه اشتباه کنیم چه مشکلی ممکن است به وجود بیاد؟
gjmkdyttyhujk
سه شنبه 26 خرداد 1394, 23:35 عصر
دوستان لطفا بی پاسخ نزارید این سوال من رو.
#root#
چهارشنبه 27 خرداد 1394, 05:58 صبح
سلام دوستان. یه سوال داشتم در مورد Alarm manager. اینکه من می خواستم مثلا در دو ماهه دیگه یه آلارمی به کاربر بدم. از alarmmanager استفاده می کن و مثال هایی که دیدم تاریخ رو به صورت میلی ثانیه دریافت میکرد. می خواستم ببینم میشه از calendar برای این کار استفاده کنم. خیلی ممنونم.
متد های موجود در این کلاس فقط میلی ثانیه رو قبول میکنن٬ ولی خب شما از Calendar هم میتونید زمان رو به میلی ثانیه بگیرید.
این مثال موجود در مستندات اندروید :
private AlarmManager alarmMgr;
private PendingIntent alarmIntent;
...
alarmMgr = (AlarmManager)context.getSystemService(Context.ALA RM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
// Set the alarm to start at 8:30 a.m.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis( ));
calendar.set(Calendar.HOUR_OF_DAY, 8);
calendar.set(Calendar.MINUTE, 30);
// setRepeating() lets you specify a precise custom interval--in this case,
// 20 minutes.
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
1000 * 60 * 20, alarmIntent);
tux-world
چهارشنبه 27 خرداد 1394, 07:59 صبح
کدی در مورد استفاده از calendar در AlarmManager دارید در اختیار من قرار بدید؟ ضمن اینکه اگه اشتباه کنیم چه مشکلی ممکن است به وجود بیاد؟
مشکلاتی از قبیل خالی کردن باطری گوشی . بی صدا کردن زنگ تماس های و خیلی موارد دیگه که بستگی به کار شما داره. چون وقتی آلارم رو دارید ست میکنید به هیچ عنوان نمیشه از بیرون از برنامه شما قطعش کرد. خاموش هم بکنید گوشی رو باز بیدار میشه. خیلی باید دقت کنید
gjmkdyttyhujk
چهارشنبه 27 خرداد 1394, 09:22 صبح
متد های موجود در این کلاس فقط میلی ثانیه رو قبول میکنن٬ ولی خب شما از Calendar هم میتونید زمان رو به میلی ثانیه بگیرید.
این مثال موجود در مستندات اندروید :
private AlarmManager alarmMgr;
private PendingIntent alarmIntent;
...
alarmMgr = (AlarmManager)context.getSystemService(Context.ALA RM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
// Set the alarm to start at 8:30 a.m.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis( ));
calendar.set(Calendar.HOUR_OF_DAY, 8);
calendar.set(Calendar.MINUTE, 30);
// setRepeating() lets you specify a precise custom interval--in this case,
// 20 minutes.
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
1000 * 60 * 20, alarmIntent);
ممنونم. من ازاین کد استفاده کردم ولی جواب نداد.
time.set(2015, 6, 17, 10, 6, 1);
alarmMgr.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pendingIntent);
من بیشتر منظورم اینه که توی یه روزه خاص این کار رو انجام بدم ولی نمیشه.
#root#
چهارشنبه 27 خرداد 1394, 10:05 صبح
ممنونم. من ازاین کد استفاده کردم ولی جواب نداد.
time.set(2015, 6, 17, 10, 6, 1);
alarmMgr.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pendingIntent);
من بیشتر منظورم اینه که توی یه روزه خاص این کار رو انجام بدم ولی نمیشه.
فک کنم بخاطر اون عدد ماهی هست که وارد کردین٬ تو جاوا (یا فقط این کلاس) ماه ها مثل آرایه ها از صفر شروع میشن (یا index گزاری میشن) - الان بجای ۶ باید ۵ بنویسد.
gjmkdyttyhujk
چهارشنبه 27 خرداد 1394, 10:38 صبح
فک کنم بخاطر اون عدد ماهی هست که وارد کردین٬ تو جاوا (یا فقط این کلاس) ماه ها مثل آرایه ها از صفر شروع میشن (یا index گزاری میشن) - الان بجای ۶ باید ۵ بنویسد.
ممنونم. جا داره ازتون یه تشکر بکنم. بله درسته. ولی یه سوال. این ایندکس گذاری ماه ها یه جورایی برنامه نویس رو گمراه نمیکنه؟
و سوال دیگه ای هم که داشتم اینکه اگه گوشی ریستارت بشه یا مثلا خاموش باشه بازم این آلارم کار خواهد کرد؟
tux-world
چهارشنبه 27 خرداد 1394, 11:17 صبح
آلارم بله کارمیکنه همونطور که گفتم. این ایندکس گزاری اشتباهیه که کردن و نمیشه دیگه درستش کرد. حالا چرا؟ خودشون هم فک کنم نمیدونن
gjmkdyttyhujk
چهارشنبه 27 خرداد 1394, 11:45 صبح
آلارم بله کارمیکنه همونطور که گفتم. این ایندکس گزاری اشتباهیه که کردن و نمیشه دیگه درستش کرد. حالا چرا؟ خودشون هم فک کنم نمیدونن
من تست کردم ولی جواب نداد. زمان رو سه دقیقه بعد از زمان فعلی گذاشتم و گوشی رو خاموش کردم ولی جواب نداد. فکر کنم باید از پاور منیجر استفاده بشه.
#root#
چهارشنبه 27 خرداد 1394, 11:46 صبح
ممنونم. جا داره ازتون یه تشکر بکنم. بله درسته. ولی یه سوال. این ایندکس گذاری ماه ها یه جورایی برنامه نویس رو گمراه نمیکنه؟
:)
نمیدونم شاید دلیل قانع کننده ای داشته باشن.
و سوال دیگه ای هم که داشتم اینکه اگه گوشی ریستارت بشه یا مثلا خاموش باشه بازم این آلارم کار خواهد کرد؟
تا جایی که تجربه کردم و خوندم خیر از کار میفته، بعد از روشن شدن دستگاه باید دوباره تنظیم کنید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.