나는 서버에서 얻은 트랜잭션 목록에 의해 리사이클 뷰를 채우려고한다. 하지만 Thread.sleep(7000)
을 넣지 않으면 채워지지 않습니다. 서버 측에서 데이터를 가져 오는 데 많은 시간이 걸립니까? 그렇다면 빠른 대안이 있습니까?서버에서 데이터 가져 오기가 너무 느립니다? (안드로이드)
또는 json 응답에서 문자열을 가져 오는 중 목록에 객체를 추가하는 데 시간이 오래 걸립니까? 이 수면은 목록에 5 개의 행을 추가하기 위해 작동하기 때문입니다. 내가 루프의 모든 번호에 대한 루프를 실행하려고하면 어떤 데이터를 얻을하지 않습니다. 내 컴퓨터는 PythonAnywhere입니다 API 응답은 JSON이며 약 400 기록이 있습니다 사용
http://sairav.pythonanywhere.com/getTransaction
:
안드로이드 비동기 HTTP를 클라이언트 ::: 컴파일 'com.loopj.android:android-async-http을 : 1.4.9 '
public List<Transaction> getTransactions(final boolean getAll) {
Thread bgThread =null;
final List<Transaction> trList=new ArrayList<>();
RequestParams requestParams = new RequestParams();
requestParams.put("uid", Profile.getCurrentProfile().getId());
PAAPI.post("/getTransaction", requestParams, new JsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, JSONArray jsonArray) {
Transaction trr = null;
if (getAll) {
for (int i = 0; i < 5; i++) {
try {
//String a = jsonArray.getString(i);
JSONObject jsonObject = jsonArray.getJSONObject(i);
//JSONArray arrayWithElements = jsonObject.toJSONArray(new JSONArray(new String[]{"name","desc","amount","ttype","uid","ttime"}));
trr = new Transaction(context);
trr.uname = jsonObject.getString("uname");
trr.desc = jsonObject.getString("description");
trr.amount = jsonObject.getString("amount");
trr.type = jsonObject.getString("type");
trr.uid = jsonObject.getString("uid");
trr.date = jsonObject.getString("ttime");
trList.add(trr);
// Toast.makeText(context,"size is bro :"+trList.size(),Toast.LENGTH_SHORT).show();
if (i == 1) {
// Toast.makeText(context, trr.uname + "-" + desc + "-" + trr.amount + "-" + trr.type + "-" + trr.uid + "-" + trr.date, Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
// Do something with the response
}
});
try {
Toast.makeText(context,"sleeping bo",Toast.LENGTH_SHORT).show();
Thread.sleep(7000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// Toast.makeText(context, "listsize final is" + trList.size(), Toast.LENGTH_SHORT).show();
return trList;
}
class PAAPI {
protected static final String BASE_URL = "http://sairav.pythonanywhere.com";
private static AsyncHttpClient client = new AsyncHttpClient();
public static void get(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
client.post(getAbsoluteUrl(url), params, responseHandler);
}
public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
client.post(getAbsoluteUrl(url), params, responseHandler);
}
private static String getAbsoluteUrl(String relativeUrl) {
return BASE_URL + relativeUrl;
}
}
으로 사용합니다. 앱이 서버에서 JSON 데이터를 가져오고 있습니까? – user1506104
그렇습니다. 그래서 잠을 자다가 데이터를 얻을 수 있었던 이유는 무엇입니까? – user3820753
그러면 첫 번째 질문에 대답합니다. 서버 측에서 데이터를 가져 오는 데 많은 시간이 걸립니까? – user1506104