Ich kann nicht herausfinden, wie man Live-Updates in Android von einem JSON API, das alle 2-3 Sekunden aktualisiert. Ich habe es geschafft, den JSON-Code herunterzuladen und dann einige Arrays zu erstellen und sie zu protokollieren, aber die Werte aus der JSON-API ändern sich alle 2-3 Sekunden und ich habe keine Ahnung, wie ich den JSON erneut herunterladen soll. Vielen Dank im Voraus für Ihre Hilfe!Android JSON Live-Updates
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DownloadTask task = new DownloadTask();
String result = null;
try{
result = task.execute("thelinkIuse").get();
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
public class DownloadTask extends AsyncTask<String, Void, String>{
@Override
protected String doInBackground(String... urls) {
String result = "";
URL url;
HttpURLConnection urlConnection = null;
while (true) {
try {
url = new URL(urls[0]);
urlConnection = (HttpURLConnection) url.openConnection();
InputStream in = urlConnection.getInputStream();
InputStreamReader reader = new InputStreamReader(in);
int data = reader.read();
while (data != -1) {
char current = (char) data;
result += current;
data = reader.read();
}
return result;
} catch (IOException e) {
e.printStackTrace();
return "Failed";
}
}
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
try {
JSONArray arr = new JSONArray(result);
for (int i = 0; i < arr.length(); i++) {
JSONObject jsonPart = arr.getJSONObject(i);
symbols.add(jsonPart.getString("symbol"));
bids.add(jsonPart.getString("bid"));
asks.add(jsonPart.getString("ask"));
}
Log.i("Symbols", String.valueOf(symbols));
Log.i("Bids", String.valueOf(bids));
Log.i("Asks", String.valueOf(asks));
} catch (JSONException e) {
e.printStackTrace();
Log.i("failed", "failed");
}
}
}
Wenn Sie glauben, dass eine Antwort das Problem gelöst hat, markieren Sie es bitte als "akzeptiert", indem Sie auf das grüne Häkchen klicken. Dies hilft, den Fokus auf ältere SO zu richten, die immer noch keine Antworten haben. –