تکرار تسک های دوره ای در اندروید

سوال

سلام

دوستان میخوام یک تسک رو توی اندروید بصورت دوره ای تکرار کنم. مثلا هر ۳۰ ثانیه یک بار یک درخواست به سرور بفرستم. میشه لطفا بگید چه راه هایی وجود داره.

حل شده 0
سوگند 5 سال 2 پاسخ ها 404 دیده شده 0

پاسخ ها ( ۲ )

  1. مشکل TimerTask  ها این هست که اون ها نمیتونن ui رو آپدیت کنن و معمولا ما نیاز داریم که اینکارو انجام بدیم.

    البته راه هایی وجود داره که ui رو از توی تایمر تسک آپدیت کرد اما اصولی نیست.

    بنابراین هرجا احساس کردید که نیاز دارید از TimerTask استفاده کنید، بجاش میتونید به سادگی از Handler استفاده کنید. هندلر یک Runnable رو اجرا میکنه و Runnable ها روی ترد اصلی اجرا میشن و مشکل مذکور حل میشه.

     

    موفق باشید

  2. درود و مهر

     

    دقت بفرمایید که برای تسک های دوره ای، در اندروید حداقل چهار تا راه وجود داره.

    در ادامه این چهار تا رو مختصر توضیح میدم.

     

    Handler : هندلر ها یک تسک رو بصورت Runnable در ترد اصلی برنامه(UI) اجرا میکنه. همچنین میتونید یک تاخیر آپشنال هم داشته باشید.

     

    ScheduledThreadPoolExecutor : یک تسک دوره ای رو در پس زمینه برنامه توسط background thread pool  اجرا میکنه.

     

    AlarmManager : هر تسک دوره ای رو بعنوان یک سرویس در پس زمینه اجرا میکنه.

     

    TimerTask : این نوع، در ترد اصلی اجرا نمیشه و اینکه قابل اعتماد نیست. همچنین یک قرارداد کلی وجود داره که در اون توافق شده که هیچگاه از TimerTask استفاده نشه. علتش رو در این مقاله میتونید بخونید.

     

    بهترین پاسخ

ارسال یک پاسخ