Ich versuche Recycler-Ansicht durch die Liste der Transaktionen, die ich vom Server bekomme, zu füllen. aber wenn ich kein Thread.sleep(7000)
setze, wird es nicht bevölkern. Benötigt es so viel Zeit, um Daten von der Serverseite zu erhalten? Wenn ja, gibt es eine schnellere Alternative?Daten vom Server zu langsam abrufen? (Android)
oder erhält die Zeichenfolge von JSON Antwort und Hinzufügen von Objekt zu Liste ist zeitaufwendig? weil dieser Schlaf nur für das Hinzufügen von 5 Zeilen in der Liste funktioniert. Wenn ich versuche, eine Schleife für die ganze Anzahl von Zeilen auszuführen, bekomme ich keine Daten.
Mein Gastgeber ist PythonAnywhere. Api Antwort ist in json und hat rund 400 Datensätze:
http://sairav.pythonanywhere.com/getTransaction
Verwendung:
Android Asynchronous Http Clienten ::: Kompilierung ‚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;
}
}
erste Dinge zuerst. Sind Sie sicher, dass Ihre App die JSON-Daten vom Server erhält? – user1506104
Ja, deshalb konnte ich Daten nach dem Schlaf bekommen, oder? – user3820753
dann beantwortet es Ihre erste Frage: dauert es so viel Zeit, um Daten von der Serverseite zu bekommen? – user1506104