PDA

View Full Version : مشکل در کار با Thread



masoud_urmia
سه شنبه 07 بهمن 1393, 11:45 صبح
سلام دوستان
من یه مشکلی در رابطه با Thread دارم که :
یک Activity دارم که تو قسمت OnCreate اون یک Thread نوشتم تا به سرور وصل بشم و عکس هایی رو بگیرم و تو گالری نشون بدم ولی مشکل اینه که ui thread به سرعت اجرا میشه و Thread من اصلا فرصت اجرا پیدا نمی کنه و در نتیجه گالری خالی می مونه می خواستم بدونم ایا راهی هست که Thread خودم سریع تر اجرا بشه ؟ اولویتش رو هم بالا بردم ولی نشد

Nevercom
سه شنبه 07 بهمن 1393, 13:44 عصر
ui thread به سرعت اجرا میشه و Thread من اصلا فرصت اجرا پیدا نمی کنه
میشه بیشتر توضیح بدید ؟

masudafsar
سه شنبه 07 بهمن 1393, 14:23 عصر
باید از کلاس AsyncTask استفاده کنی:

private class GetContents extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// before start Thread
}

@Override
protected Void doInBackground(Void... arg0) {
// get contents from web service
return null;
}

@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// after end Thread
}
}

بهتر اینه که این کلاس رو در آخر همون کلاس اکتیویتی اضافه کنی

masoud_urmia
سه شنبه 07 بهمن 1393, 14:59 عصر
همون تردی که user interface رو کنترل میکنه فکر کنم بهش main thread هم میگن یا ترد پیش فرض

masoud_urmia
سه شنبه 07 بهمن 1393, 15:03 عصر
باید از کلاس AsyncTask استفاده کنی:

private class GetContents extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// before start Thread
}

@Override
protected Void doInBackground(Void... arg0) {
// get contents from web service
return null;
}

@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// after end Thread
}
}

بهتر اینه که این کلاس رو در آخر همون کلاس اکتیویتی اضافه کنی

ممنون دوست عزیز از asyn yask استفاده کردم ولی میدونین مشکل چیه اونوقت برنامه پیغام not responding میده و دو گزینه wait یا close رو نشون میده.

rubiks.kde
سه شنبه 07 بهمن 1393, 16:19 عصر
برای راحتی از کتابخانه های آماده استفاده کنید.


مشکل اینه که ui thread به سرعت اجرا میشه و Thread من اصلا فرصت اجرا پیدا نمی کنه
مشکل این نیست.ترد خاصیتش اینه.هر دو باهم اجرا میشن و فرقش درینه که شما از تردی که برای دانلود استفاده میکنید به ui داده نمیدید.در واقع هر دو که اجرا میشن ui بالا میاد و ترد دانلود هم داره توی پس زمینه کار میکنه