بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

برگشت مقدار پوچ به متد onPostExecute در AsyncTask

مدیریت گفتگو
Spirit 12 سال پیش
آخرین تغییر: 12 سال پیش

سلام ، این کد من :

 public class SyncData extends AsyncTask<String, Void, String> {

@Override
protected String doInBackground(String... params) {
String count = params[0];
String inputLine = "";
try {
Thread.sleep(2000);

URL url = new URL(G.getURL(count));
BufferedReader in = new BufferedReader(new InputStreamReader(
url.openStream()));

String[] res = null;

while ((inputLine = in.readLine()) != null)
res = inputLine.split("\\#");
for (int i = 0; i < res.length; i++) {
System.out.println(res[i]);
}

in.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return inputLine;
}

@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
System.out.println("Result is : " + result);
}
}

در متد doInBackground و در حلقه for خروجی بصورت صحیح نمایش داده میشه ولی در متد onPostExecute خروجی null هستش (Result is : null) ، علت چیه و چجوری باید حلش کنم؟

با سپاس

نظرات

uncocoder 12 سال پیش
در کل سعی کنید از AsyncTask استفاده نکنید، بعداً حسابی از خجالتتون در میاد. این یک تجربه است.

پاسخ‌ها 1

MJ 12 سال پیش

سلام دوست عزیز

در آخرین باری که حلقه while شما اجرا میشه ،   شرط

 (inputLine =in.readLine())!=null)

مقدار false برمیگرده، یعنی inputStreemReader مقدار null رو برگردونده و داخل inputLine قرار گرفته!

راه حلشم با توجه به اینکه اشکال کد شما حواس پرتی بوده دیگه گفتن نداره و ساده س..

نظرات

Spirit 12 سال پیش
لطف کردین

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