تبلیغات
تبلیغات

اجرای کد بعد از زمان مشخصی به صورت مکرر در اندروید

اجرای کد بعد از زمان مشخصی به صورت مکرر در اندروید

اجرای کد بعد از زمان مشخصی به صورت مکرر در اندروید


اگر با ویژوال سی شارپ کار کرده باشید، کنترلی به نام Timer وجود دارد و این کنترل شامل یک رویداد Tick نیز می‌باشد که این رویداد برای مثال هر یک ثانیه یک بار اجرا می‌شود. فرض کنید می‌خواهید هر 20 ثانیه یک بار، چیزی از سرور دریافت کرده و محتوایی را آپدیت کنید.

این‌کار را می‌توان به روش‌های مختلفی انجام داد که در این پست، به چند مورد از آن‌ها شاره خواهیم کرد؛ شما دوستان عزیز تجربه‌ی خود را در مورد هرکدام، از قسمت نظرات می‌توانید برایمان ارسال کنید.

استفاده از Timer و TimerTask

کد زیر را بنویسید:

تا این‌جا صفر کنید.
قرار است که این کد، هر 5 ثانیه یک بار، یک لاگ برایمان چاپ کند. همانطور که می‌بینید، لاگگ را داخل handler نوشته‌ایم چرا که Timer یک Thread برای خود می‌سازد و ممکن است بخواهیم داخل آن به عناصر UI دسترسی داشته باشیم؛ برای همین از  Handler استفاده کرده‌ایم.
حالا باید زمان را مشخص کنیم.

متد schedule
اگر بخواهیم فقط برای یک بار اجرا شود:

در این‌جا، کد بعد از گذشت 5 ثانیه اجرا خواهد شد. (زمان برحسب میلی ثانیه است)

متد scheduleAtFixedRate
اگر بخواهیم کد هربار بعد از گذشت یک زمان مشخصی اجرا شود:

در این‌جا، کد بعد از گذشت 4 ثانیه اجرا شده و در ادامه، هر 5 ثانیه یک بار اجرا خواهد شد. پس ورودی زمان اول، تاخیر در اولین اجرا و ورودی زمان دوم، زمان اجرا در هربار می‌باشد.

استفاده از Thread

گرچه استفاده از Timer مزیت‌‌های خاص خودش را دارد، اما تایمر نیز از Thread بهره می‌برد و می‌توانیم با استفاده از Thread این‌کار را انجام دهیم.

در این‌جا، ترد را داخل یک حلقه‌ی بی‌نهایت انداخته‌ایم که هربار پس از اجرای حلقه، بع مدت دوثانیه ترد به خواب می‌رود. می‌توانیم به جای بی‌نهایت کردن حلقه، یک متغیر Boolean برایش در نظر بگیریم تا هر زمانی که خواستیم، آن را متوقف کنیم.
پس درک این که تایمر چگونه کار می‌کند با درک تردها برایمان ساده خواهد شد.
همچنین در صورت دسترسی به عناصر UI، استفاده از Handler را فراموش نکنید.

کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک‌گذاری اطلاعات در هر زمینه‌ای
برنامه‌نویس فول استک

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه