PDA

View Full Version : بالاخره نفهمیدم Handler چیه و چطوری کار میکنه



vahidak64
چهارشنبه 27 آذر 1392, 12:42 عصر
تو اینترنتم که فارسی چیزی نیس
سایتای انگلیسیرم هر چی گشتم یا توضیح کمی داده بودن یا خیلی سخت نوشته بودن که نتونستم ترجمه کنم

reza_azizi2010
چهارشنبه 27 آذر 1392, 18:22 عصر
ببینید شما وقتی توی برنامتون از Thread استفاده میکنید و یسری پردازش انجام میدین، نتیجه اون پردازشها رو مستقیم نمیتونید نمایش بدین مثلا نمیشه متن یک TextView رو تغییر بدین (اگه اینکارو بکنید برنامه کرش میکنه). برای همین شما یک handler صدا میزنید تا نتایج محاسبات رو به UI یا همون Main Thread پاس بده. درواقع handler نتیجه محاسبات Thread رو قابل نمایش میکنه.

vahidak64
پنج شنبه 28 آذر 1392, 09:36 صبح
ممنونم
میشه یه مثال خیلی ساده هم بزنید

reza_azizi2010
پنج شنبه 28 آذر 1392, 10:44 صبح
Thread thread = new Thread(new Runnable() {
String temp1="TEST";
Handler handler = new Handler();
@Override
public void run() {
temp1=temp1+" 1";
handler.post(new Runnable() {

@Override
public void run() {
MYtextview.setText(temp1 ); }
});
}
});
شما توی این مثال، اگه textview رو خارج از بلوک handler مقدار دهی کنید ، برنامه کرش میکنه. البته handler کلی استفاده دیگه هم داره مثل اجرای با تاخیر یکسری دستورات و ... که من همشو بلد نیستم

vahidak64
پنج شنبه 28 آذر 1392, 10:58 صبح
خیلی ممنونم