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

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

Spirit  12 سال پیش  12 سال پیش
0 0

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

 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 قرار گرفته!

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

0 0
لطف کردین (12 سال پیش)

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