handler در اندروید

سلام دوستان امروز میخواهیم به بررسی handler در اندروید بپردازیم.پیش نیاز این اموزش اشنایی با مباحث پایه و همچنین ترد ها در اندروید است که در پایان اموزش لینکشان قرار داده شده است.
همانطور که قبل تر با ترد اشنا شدیم ترد ها یک پردازش را جدا برای ما انجام می دهند به گونه ای که با ترد اصلی تداخلی ندارد و منابع جدایی برای ان وجود دارد.هنگامی که عملیات خود را در یک ترد انجام میدادیم به کمک  runOnUiThread نتایج را در ui نمایش میدادیم و بدون این دستور امکان ارتباط میان ترد و ui وجود نداشت.
حالا تصور کنید ما یک ترد داریم که یک سری عملیات را برای ما پردازش میکند و ما میخواهیم بعد از انجام این محاسبات و پردازش ها برای ارتباط با ui از ترد اصلی استفاده کنیم.یعنی اگر ما یک mainThread و یک TestThread داشته باشیم بعد از انجام کار ها در TestThread ترد اصلی یعنی mainThread نتایج را برای ما ui نمایش میدهد.
اما نقش handler در اینجا چیست؟

handler ارتباط بین ترد ها و ترد ui را برقرار میکند.

پس به طور خلاصه ترد هنگام نیاز برای ارتباط با ui از کلاس هندلر کمک میگیره.حالا به بررسی یک مثال میپردازیم:
activity_main.xml

MainActivity.java

خب ما یک progressbar در برناممان قرار دادیم تا به وسیله ان با عملکرد هندلر اشنا شویم.ابتدا یک هندلر تعریف کردیم شکل نوشتن ان به این صورت است:

همانطور که میبینید ابتدا در تردی که نوشتیم عملیات پردازش انجام می شود سپس در اخر که نیاز به ارتباط با ui برای نمایش progress است از دستور post استفاده کردیم که شکل کلی ان به این صورت است:

و در اخر ترد را استارت میکنیم.جا داره به این نکته اشاره شود که asynctask کار ترد و هندلر را انجام می دهد که میتوانید اموزش ان را در سایت پیدا کنید.
امیدوارم توضیحات خوب بوده باشد.لینک های زیر برای اشنایی بهتر با این مباحث میتوانید مفید باشد:

اموزش thread در اندروید

اموزش asynctask در اندروید

موفق باشید…

مطالعه بیشتر