آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

چگونگی دسترسی thread به thread مربوط به ui (که همون نخ اصلی هست)

شهریاری 2  7 سال پیش  7 سال پیش
0 0

وقت همگی بخیر

کدهای ارتباط با سرور رو من داخل یک thread میذارم.

درسته؟ تا اجرا بشه و برنامه کرش نکنه.

یعنی thread ای که مربوط به ui برنامه میشه ، داره برای خودش کار میکنه و این thread هم برای خودش میره با سرور ارتباط برقرار میکنه. درسته؟

پس چطوری میتونه به ui دسترسی داشته باشه و مقادیر رو به listview نشون بده یا هر چیز دیگه ای که در ui هست؟

+3 0
سلام ، با استفاده از Handler ای که در UI Thread ساخته شده . (7 سال پیش)
0 0
سوالتون گنگه یکم بیشتر توضیح بدید! (7 سال پیش)
0 0
یک کدی دارم که باید به سرور وصل بشه و مقادیری رو از mysql دریافت کنه. چون قرار هست که به سرور وصل بشه، نیاز هست که در یک thread باشه تا برنامه کرش نکنه. خب وقتی که اطلاعات رو از سرور گرفت، نیاز هست که در یک listview نمایش بده. متاسفانه برنامه من چیزی رو نشون نمیده وقتی که کدها داخل thread باشن. چون داده های الکی رو که به listview میفرستم، لیست ویو درست کار میکنه ولی وقتی داخل thread میبرم، چیزی نشون نمیده. انگار listview ندارم (7 سال پیش)
0 0
اقا رضا میشه یه مثال برام بزنی؟! بیشتر توضیح میدی؟ نمونه کدی، چیزی! (7 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
شهریاری 2  7 سال پیش
0 0

یعنی هیچکس به این مشکل بر نخورده ؟!

جالبه!

این همه نرم افزار ارتباط با سرور هست...

 

پاسخ به سوال 
Amir  7 سال پیش
+3 0

وقتی که یک سری کد رو داخل Thread می نویسید اگه توی کدها کدی باشه که UI برنامه رو تغییر بده (مثلا setText برای TextView) برنامه کرش می کنه چون که فقط باید از طریق Thread اصلی UI رو تغییر بدید. به خاطر همین توی Thread هرجا کدی می خواست که UI رو تغییر بده اون کد رو داخل Handler می نویسید. مثلا:

final TextView txt = (TextView) findViewById(R.id.txt);
final Handler handler = new Handler();

Thread thread = new Thread(new Runnable() {

@Override
public void run() {
handler.post(new Runnable() {

@Override
public void run() {
txt.setText("سلام");
}
});
}
});

با این کد txt.setText که توی thread نوشته شده در واقع توی Thread اصلی اجرا میشه.

باید به این نکته توجه داشته باشی که Handler رو توی thread تعریف نکنی.

این توضیح Handler بود اگه متوجه نشدید بخش همزمانی رو ببینید.

اگه بازم برنامه تون کار نکرد کدهاتون رو بزارید.

0 0
لایک داری مهندس! باشه تست کنم، خبر میدم... (7 سال پیش)
0 0
هورااااااااااااااااااااااااااااااااااااااااااا درست شد! آقا خیلی تشکر! (7 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .