فهرست مطالب
Alarm Manager
AlarmManager یکی از ویژگیهای مهم در اندروید است که به برنامهنویسان این امکان را میدهد تا عملیاتهای مختلف را در زمانهای مشخص اجرا کنند، حتی اگر برنامه در حالت خواب (sleep) یا به پشتصفحه (background) رفته باشد. این موارد معمولاً برای اجرای وظایف تکراری، همچون ارسال اطلاعیهها یا اجرای فعالیتهای مدت زمانی طولانی مورد استفاده قرار میگیرند.
ایجاد Intent برای اجرای کد شما:
ابتدا یک Intent برای اجرای کد مورد نظرتان بسازید.
Intent intent = new Intent(context, YourBroadcastReceiver.class);
یا اگر میخواهید یک خدمت (Service) را اجرا کنید:
Intent intent = new Intent(context, YourService.class);
ایجاد PendingIntent:
برای اجرای کد مورد نظر، نیاز به یک PendingIntent دارید.
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
دریافت AlarmManager:
حالا نیاز به دریافت یک نمونه از AlarmManager دارید.
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
تنظیم زمان اجرا:
مشخص کنید که کدام AlarmManager.RTC یا AlarmManager.ELAPSED_REALTIME را برای زمان اجرا استفاده میکنید. سپس زمان مورد نظرتان را مشخص کنید.
long triggerTime = System.currentTimeMillis() + yourDesiredTimeInMillis;
alarmManager.set(AlarmManager.RTC, triggerTime, pendingIntent);
یا اگر بخواهید با زمانهای نسبی (به عنوان مثال برای یک فعالیت متداول) کار کنید:
long triggerTime = SystemClock.elapsedRealtime() + yourDesiredTimeInMillis;
alarmManager.set(AlarmManager.ELAPSED_REALTIME, triggerTime, pendingIntent);
توجه داشته باشید که این زمانها بر حسب میلیثانیه هستند.
تعیین دوره تکرار:
اگر میخواهید که عملیات شما تکرار شود، از setRepeating یا setInexactRepeating استفاده کنید.
long intervalMillis = yourDesiredIntervalInMillis;
alarmManager.setRepeating(AlarmManager.RTC, triggerTime, intervalMillis, pendingIntent);
لغو زمانبندی:
اگر نیاز به لغو یک PendingIntent داشتید، میتوانید از cancel استفاده کنید:
alarmManager.cancel(pendingIntent);
توجه داشته باشید که cancel تنها PendingIntent هایی را لغو میکند که با دقت زمانی (RTC) ساخته شدهاند و از زمانهای نسبی (ELAPSED_REALTIME) پشتیبانی نمیکند.
این توضیحات یک چارچوب کلی از استفاده از AlarmManager در اندروید ارائه میدهد.
نظرات
دیدگاهی برای این مطلب ثبت نشده است.