بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
برگشت مقدار پوچ به متد onPostExecute در AsyncTask
سلام ، این کد من :
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) ، علت چیه و چجوری باید حلش کنم؟
با سپاس
+2
0
در کل سعی کنید از AsyncTask استفاده نکنید، بعداً حسابی از خجالتتون در میاد. این یک تجربه است. (12 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
MJ
12 سال پیش
+1
0
سلام دوست عزیز
در آخرین باری که حلقه while شما اجرا میشه ، شرط
(inputLine =in.readLine())!=null)
مقدار false برمیگرده، یعنی inputStreemReader مقدار null رو برگردونده و داخل inputLine قرار گرفته!
راه حلشم با توجه به اینکه اشکال کد شما حواس پرتی بوده دیگه گفتن نداره و ساده س..
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .