کلاس Timer :
پس از TimerTask که همان کار مورد نظر است که باید در زمان مشخص انجام شود، باید امور مربوط به زمانبندی کار را انجام دهیم. همانطور که گفته شد ، با استفاده از کلاس Timer این کار را انجام میدهیم.
کلاس Timer چهار نمونه constructor مختلف دارد که چون غیر از نوع اول ، سه نوع بعدی کاربرد خیلی کمتری دارند ، ما فقط به بررسی نوع اول می پردازیم.
برای زمانبندی کار ایجاد شده، باید یک Object از نوع Timer ایجاد کنیم و با استفاده از متد schedule تنظیمات مربوط به زمان بندی را اعمال کنیم.
متد schedule چهار نگارش مختلف دارد. که با هر کدام برای کار بخصوصی ایجاد شده اند.
این نسخه از متد schedule ، با گرفتن شی TimerTask و زمان تاخیر( delay ) ، کار مورد نظر را بعد از انتظار به اندازه delay انجام میدهد.( delay زمانی بر حست میلی ثانیه است)
این نسخه از متد schedule با گرفتن شی TmerTask و یک شی از کلاس Date کاری را دقیقا در یک تاریخ مشخص که این تاریخ در همین شی Date کپسوله شده است انجام می هد.
این نسخه از متد schedule با گرفتن شی TmerTask علاوه بر انجام کار های نسخه اول، زمان تکرار کار را هم که با متغییر period مشخص شده را بر حسب میلی ثانیه می گیرد و بعد از تاخیر به اندازه delay ، بعد از گذشت زمان period ، کار مشخص شده در TimerTaks را مدام تکرار می کند.
آخرین نسخه از متد schedule کاری مشابه نسخه سوم انجام می دهد با این تفاوت که زمان delay برای انتظار اولیه را در شی Date دریافت می کند.
نکته: برای خاتمه دادن به زمانبندی باید با از متد cancel() استفاده کنیم. وگرنه Thread مربوط به این شی از بین نخواهد رفت. و برنامه همچنان باز خواهد ماند.
در زیر مثالی را می بینید که برای استفاده از کلاس Timer نوشته شده و با به خدمت گرفتن کلاس MyTimerTask ( که در بالا پیاده سازی این کلاس را دیدیم ) ، کاری را که در این کلاس تعریف کرده ایم را زمانبندی می کند. در این مثال با استفاده از نسخه سوم متد schedule ، کار تعیین شده در MyTimerTask را بعد از تاخیر اولیه ۵۰۰ میلی ثانیه ، و سپس تکرار کار در هر ۱۰۰۰ میلی ثانیه یکبار، اجرا میکنیم.و پس از گذشت ۵۰۰۰ میلی ثانیه cancel() را فراخوانی کرده و به کار Timer خاتمه می دهیم.