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

لگ ( تاخیر ) یک ثانیه هنگام دریافت اطلاعات از سرور ( مهم )

Pr0gramm3r  11 سال پیش  11 سال پیش
0 0

سلام

من با استفاده از webservice استاد یک سری اطلاعات دریافت میکنم

این وسظ چند تا پروگرس بار هم کار میکنن , هر وقت هم که اطلاعات رو میگیرم اینا از کار میفتن ( برای یک الی دو ثانیه ) 

حالا چطوری اینو رفع کنم ؟ اینو که نمیشه تو Thread انداخت , میشه ؟

این یکی دو ثانیه با این که چیزی نیست ولی حس خوبی به کاربر نمیده ( حس روون بودن برنامه رو میگیره )

0 0
چرا نشه؟فکر کنم میشه این دریافت اطلاعات رو توی thread انداخت. (11 سال پیش)
0 0
من با فایل webservice این کار رو میکنم , یه بار سعی کردم کلا بهم ریخت , شما هم یه چکی بکنید (11 سال پیش)
0 0
دوستان اصلا روش بهتری از مال استاد هست ؟ راستی هی جا کد بهم گفتن که از این استفاده کن developer.android.com/training/basics/network-ops/connecting.html ولی وقتی دیتا رو میگرفتم ناقص و نصفه بود (11 سال پیش)
+1 0
از کتابخونه Volley استفاده کن، خود گوگل توسعش میده - تو مستندات هم راجبش توضیح داده لینک . تو android-arsenal هم کتابخونه های بیشتری برای دریافت دیتا از اینترنت هست. (11 سال پیش)
0 0
ممنون اسپریت جان , من یک کلاس برای این کار پیدا کردم , ولی نمیدونم چطوری اطلاعاتی که دریافت شده رو بگیرم , این لینک کد هستش : لینک , پاسخ اول , ممنون میشم کمک کنی (11 سال پیش)
0 0
بجای اینکه Webservice رو توی ترد بزاری < متدش رو اونجاهایی که صدا میزنی < توی ترد بزار (11 سال پیش)
0 0
criss جان انجام دادم تاثیری نداشت , الان مال اسپریت جان رو تست میکنم ببینم چی میشه (11 سال پیش)
0 0
اون تاخیر که در هر صورت وجود داره چون دریافت اطلاعات طول میکشه. ولی اگه میخواین حالت هنگ کردن نداشته باشه، یا از ترد استفاده کنید یا از روشی که spirit گفتن استفاده کنید. (11 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Spirit  11 سال پیش
+1 0

این کلاس چند تا تغییر کوچولو نیاز داشت که انجام دادم :

import com.android.volley.NetworkResponse;
import com.android.volley.ParseError;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.toolbox.HttpHeaderParser;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.UnsupportedEncodingException;
import java.util.Map;

public class CustomRequest extends Request<JSONObject> {

private Response.Listener<JSONObject> listener;
private Map<String, String> params;

public CustomRequest(String url, Map<String, String> params,
Response.Listener<JSONObject> reponseListener, Response.ErrorListener errorListener) {
super(Method.GET, url, errorListener);
this.listener = reponseListener;
this.params = params;
}

public CustomRequest(int method, String url, Map<String, String> params,
Response.Listener<JSONObject> reponseListener, Response.ErrorListener errorListener) {
super(method, url, errorListener);
this.listener = reponseListener;
this.params = params;
}

protected Map<String, String> getParams()
throws com.android.volley.AuthFailureError {
return params;
};

@Override
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
try {
String jsonString = new String(response.data,
HttpHeaderParser.parseCharset(response.headers));
return Response.success(new JSONObject(jsonString),
HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (JSONException je) {
return Response.error(new ParseError(je));
}
}

@Override
protected void deliverResponse(JSONObject response) {
listener.onResponse(response);
}
}

اینم نحوه استفاده :

String url = "your url";
RequestQueue requestQueue = Volley.newRequestQueue(this);
CustomRequest jsObjRequest = new CustomRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject jsonObject) {
// do what ever you want with jsonObject
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
}
});
requestQueue.add(jsObjRequest);

توی متد onResponse شما jsonObject رو دریافت میکنید، توی Listener بعدی هم اگر با خطا مواجه شدید اطلاعات خطا رو میتونید دریافت کنید.

0 0
خیلی ممنونم , برای JsonArray چیکار باید بکنم ؟ همه JSonObject ها رو به JSonArray تغییر بدم درسته؟ (11 سال پیش)

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