Ich erstelle eine Android App, wo ich einige Ziele in einer SQLite-Datenbank speichern. Auch ich hole diesen Inhalt von der on-line mysql Datenbank, wenn es neuen Inhalt gibt.Übersprungene Bilder bei der Verwendung von Async
Wenn also die Hauptaktivität gestartet wird, lädt sie die gespeicherten Daten aus der SQL-Datenbank in einer Listenansicht und führt dann eine JsonObjectRequest mit Volley durch. (Ein Async-Task)
Aber noch bin ich immer die folgenden Fehler, wenn die Haupttätigkeit startet
Skipped 88 frames! The application may be doing too much work on its main thread.
Skipped 34 frames! The application may be doing too much work on its main thread.
Die 88 Frames von der SQLite-Datenbank ist, laden alle gespeicherten Daten. Da, wenn ich nach unten wischen, um zu aktualisieren, mache ich nur die JsonObjectRequest und bekomme den Fehler mit wie 34 Frames.
Muss ich vielleicht die sqlite db auch in eine AsyncTask laden? Oder haben Sie eine andere Lösung?
Ich würde gerne Ihre Meinung hören. Vielen Dank im Voraus.
Wiljan
EDIT:
ich es nun wie folgt in einem Async setzen:
private class syncData extends AsyncTask<Void, Void, Void> {
private KerntaakListAdapter adapter;
public syncData(KerntaakListAdapter adapter) {
this.adapter = adapter;
}
/**
* The system calls this to perform work in a worker thread and
* delivers it the parameters given to AsyncTask.execute()
*/
@Override
protected Void doInBackground(Void... params) {
dataSource.syncData(swipeRefreshLayout);
return null;
}
/**
* The system calls this to perform work in the UI thread and delivers
* the result from doInBackground()
*/
protected void onPostExecute(String result) {
adapter.notifyDataSetChanged();
}
}
Und mit diesem auslösen:
new syncData(adapter).execute();
Aber es gibt nach wie vor mir ein übersprungener Rahmenfehler. Obwohl die Frames etwas reduziert sind.
Sie sollten also versuchen, Ihre Datenbank in einem separaten Thread zu lesen; aber es könnte andere Dinge in Ihrer App verursachen Rahmen Tropfen – Eenvincible