تعریف دقیق از handler
سلام
handler خیلی ساده هست، از معنی لغویش معلومه که یه چیزیو کنترل میکنه، حالا چیا رو کنترل میکنه ؟
توی دنیای واقعی همیشه یه پدر/مادر (حالا ما میگیم والد) کارای بچه هاشو کنترل میکنه، مثلا بچه (3سالشه :) ) به والدش میگه من بستنی میخوام، دارم میرم سر کوچه بخرم شما هم میخواین؟ والدش بهش میگه فرزند عزیزم تو اجازه نداری بری تو کوچه واسه تو خطرناکه یا یه اتفاقی برات میوفته یا واسه یکی دردسر درست میکنی، تو بشین تو خونه من(والد) میرم برات میخرم. هر وقت هم چیزی خواستی یا بیرون از خونه کاری داشتی به ما بگو یا بهمون زنگ بزن تا هر چی خواستی برات تهیه کنیم.
حالا این مثال چه ربطی به handler داشت؟
ما (برنامه نویس) میایم توی mainThraed از کلاس Handler یه نمونه میسازیم که این نمونه همونیه که والد داره به فرزندش میگه هر وقت از بیرون چیزی خواستی به ما بگو، حالا این نمونه ای که از Handler ساختیم رو توی اون کلاسی که مثلا از نوع thread هست و میخواد یه کاریو روی فضای خارج از برنامه یا خارج از context خودش انجام بده صدا میزنیم، که این کلاسی که از نوع مثلا Thread هست، همون بچه 3 ساله هست که به حرف والدش گوش میده تصمیم میگیره که از این به بعد اگه چیزی خواست حتما به والدش بگه.
خوب حالا کلا handler چی شد؟
فرض کنید که یه ActivityMain ( والد ) داریم و یه ThreadTest ( بچه 3 ساله )
توی کلاس ActivityMain به این شکل مینویسیم:
Handler handler = new Handler();
و توی ThraedTest اینجوری مینویسیم: (فرض کنید که object ی که ساختیم static باشه)
حالا چون بچه خوبی بوده و کاراشو درست انجام داده میتونه به والدش بگه که براش بستنی بخره :)
ActivityMain.handler.post()new Runnable() {
@Override
public void run() {
/* من بستنی میخوام */
}
});
امیدوارم که مثال خوبی بوده باشه، البته میتونید واسه خودتون مثالای بهتری هم بزنید.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .