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

مشکل در اجرای method با AsyncTask

hamcalas  7 سال پیش  7 سال پیش
0 0

سلام

در اجرای method  از طریق  AsyncTask چطور باید عمل کنم  

کلاس AsyncTask

 private class LongOperation extends AsyncTask<String, Void, String> {

@Override
protected String doInBackground(String... params) {
Log.i("LOG","doInBackground");

return "Executed";
}

@Override
protected void onPostExecute(String result) {
Log.i("LOG","onPostExecute");

}

@Override
protected void onPreExecute() {
Log.i("LOG","onPreExecute");

}

@Override
protected void onProgressUpdate(Void... values) {
Log.i("LOG","onProgressUpdate");

}
}

یک method به شکل زیر

 private  String conter(){
Log.i("LOG","my method is runing ! ");
return "";

}

اجرا از طریق دستور :

 new LongOperation().execute(conter());

وقتی اجرا می کنم به ترتیب اجرا نمی شود ونتییجه ی اجرای کد بالا به این شکل است

I/LOG: my method is runing ! 
I/LOG: onPreExecute
I/LOG: doInBackground
I/LOG: onPostExecute

در حالی که باید به ترتیب زیر باشد :


I/LOG: onPreExecute
I/LOG: doInBackground
I/LOG: my method is runing !
I/LOG: onPostExecute

 

0 0
بهتر بود متد رو همونجایی که میخواین نمایش بده استفاده کنین یعنی اگه میخواین توی do in backround اجرا بشه همونجا و اگه تو onPostExecute میخواینش توی onPostExecute فراخونی کنین (7 سال پیش)
0 0
مشکل از طریقه اجراتونه! وقتی شما center رو توی پارامترها گذاشتید، روند به این صورت میشه که اول میره متد رو بررسی میکنه و نتیجه که یک String هست رو توی پارامتر به کلاس LongOperation ارسال میکنه. (7 سال پیش)
0 0
بله مشکلم از روش اجراست، اگر کدها مستقیما در onPostExecute قرا بدهم (از متد یا فانکشن استفاده نکنم) درست اجرا می شود ، اما هر بار قرار است کدهای جدیدی را از طریق کلاس AsyncTask اجرا کنم که در این صورت باید چندین کلاس AsyncTask تعریف کنم . در واقع می خواهم با یک کلاس AsyncTask چندین متد را در جاهای مختلف اجرا کنم (7 سال پیش)
 برای این سوال پاسخی وجود ندارد.

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