بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل در اجرای method با AsyncTask
سلام
در اجرای 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 فراخونی کنین (8 سال پیش)
0
0
مشکل از طریقه اجراتونه! وقتی شما center رو توی پارامترها گذاشتید، روند به این صورت میشه که اول میره متد رو بررسی میکنه و نتیجه که یک String هست رو توی پارامتر به کلاس LongOperation ارسال میکنه. (8 سال پیش)
0
0
بله مشکلم از روش اجراست، اگر کدها مستقیما در onPostExecute قرا بدهم (از متد یا فانکشن استفاده نکنم) درست اجرا می شود ، اما هر بار قرار است کدهای جدیدی را از طریق کلاس AsyncTask اجرا کنم که در این صورت باید چندین کلاس AsyncTask تعریف کنم .
در واقع می خواهم با یک کلاس AsyncTask چندین متد را در جاهای مختلف اجرا کنم (8 سال پیش)
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .