برای همچین نوشته هایی از اضافه کردن نظر استفاده کنید
بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
حذف آلارم منیجر استاد(حل شد+کدها اضافه شد)
مدیریت گفتگو
آخرین تغییر: 10 سال پیش
با سلام
بنده با قسمت دوم آموزش استاد یک آلارم منیجر ساختم و با موفقیت کار میکنه
حالا مشکل اینجاست مثلا آلارم منیجر آیدی 22 هست و من داخل کلاس دیگه ای میخوام این آلارم رو متوقف کنم ولی اصلا متوقف نمیشه و آلارم در زمان خودش کار میکنه
از کدهای زیر هم استفاده کردم ولی متاسفانه کار نکرد
alarmmanager.cancel(pi);
پاسخها 3
CalendarModule jCal = new CalendarModule();
jCal.PersianToGregorian(Integer.parseInt(String_year_choise), Integer.parseInt(String_month_choise), Integer.parseInt(String_day_choise));
String DateFull = jCal.toString();
String DateYear = DateFull.substring(0, 4);
String DateMonth = DateFull.substring(5, 7);
String DateDay = DateFull.substring(8, 10);
//Set Date For Alarm
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, Integer.parseInt(DateYear));
calendar.set(Calendar.MONTH, (Integer.parseInt(DateMonth)) - 1);
calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(DateDay));
calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(String_hourse_choise));
calendar.set(Calendar.MINUTE, Integer.parseInt(String_minute_choise));
calendar.set(Calendar.SECOND, 0);
Context context = getApplicationContext();
Intent intent = new Intent(context, Show.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("type", Type);
intent.putExtra("title", name_yadavari_field_edt.getText().toString());
intent.putExtra("matn", matn_yadavari_field_edt.getText().toString());
intent.putExtra("cat", Cat);
intent.putExtra("call", call_field_edt.getText().toString());
intent.putExtra("time", String_hourse_choise + ":" + String_minute_choise);
intent.putExtra("date", String_year_choise + "/" + String_month_choise + "/" + String_day_choise);
intent.putExtra("message", message_field_edt.getText().toString());
intent.setData((Uri.parse("foobar://" + SystemClock.elapsedRealtime())));
PendingIntent pendingIntent = PendingIntent.getActivity(context, 22, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
نظرات
لطفا کدهارو مشاهده کنید
من باهاشون یک آلارم میسازم و یک مقدار خاص رو در زمان خاص ارسال میکنم
ولی هرکاری کردم نمی تونم اونو کنسل کنم
شما می خواهید در کلاس دیگه ای این آلارم رو کنسل کنید؟ برای امتحان در همین کلاس که آلارم رو تعریف می کنید یه button بسازید و کنسل شدن رو در این button قرار بدهید ببینید درست عمل می کند
بله مهندس جان
مقدار آیدی مشخص هست
میخوام داخل یک کلاس دیگه انجام بدم
همه addflags و putExtra و setData ها رو حذف کنید ببینید درست می شود دیگه راه حلی به ذهنم نمی رسد چون خودم از همین روش استفاده کرده ام و مشکلی نبوده.
خوب مهندس جان هدف من ارسال این مقادیر در یک زمان خاص هست!!
اگر پاک کنم که فایده ایی نداره
بنظرتون برای ارسال مقادیر چکار کنم؟
مقادیر در دیتابیس توسط کاربر وارد میشن
برای تست گفتم .گفتم شاید از addflags باشه خودم هم مقادیر ارسال کرده ام و مشکلی نبوده
اگر کدهای خودت رو می گذاشتی بهتر بود ولی حالا به این کدها نگاه کن ببین کارت رو راه می اندازد
operation , am را به صورت static تعریف کن تا بتوانی در کلاس های دیگر بهش دسترسی داشته باشی
Intent intent = new Intent(Main.this, AlarmDialog.class);
PendingIntent operation = PendingIntent.getActivity(getBaseContext(), 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
am.set(AlarmManager.RTC_WAKEUP, alarmStart, operation);
برای متوقف شدنش
operation = PendingIntent.getActivity(getBaseContext(), 0, intent, 0);
am.cancel(operation);
اگه بازم مشکل داشتی اطلاع بده
نظرات
مشکل من دقیقا بخاطر این چند خطی هست ک باهاشون مقادیر رو ارسال میکنم
خطهای زیر رو پاک کردم و به درستی کار کرد
intent.putExtra("type", Type);
intent.putExtra("title", name_yadavari_field_edt.getText().toString());
intent.putExtra("matn", matn_yadavari_field_edt.getText().toString());
intent.putExtra("cat", Cat);
intent.putExtra("call", call_field_edt.getText().toString());
intent.putExtra("time", String_hourse_choise + ":" + String_minute_choise);
intent.putExtra("date", String_year_choise + "/" + String_month_choise + "/" + String_day_choise);
intent.putExtra("message", message_field_edt.getText().toString());
intent.setData((Uri.parse("foobar://" + SystemClock.elapsedRealtime())));
نظرات
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام
نظرات