S
skywalker22
Neues Mitglied
- 0
Hallo,
ich habe folgenden Code, der mir alle Kalenderdaten für einen gewissen Zeitraum abruft:
Ich habe eine Kalenderapp programmiert, in der ich diesen Code verwende. Für eine einfache Tagesansicht klappt alles super, die Termine werden unter 80 ms angezeigt. Für eine Wochenansicht braucht dieser Code allerdings ca. 3-5 Sekunden. Dann hängt die App...
Wie machen das Apps wie 'aCalendar' oder die interne Google Kalender App, dass die Termine blitzschnell angezeigt werden?
ich habe folgenden Code, der mir alle Kalenderdaten für einen gewissen Zeitraum abruft:
Code:
Cursor cur = null;
ContentResolver cr = this.c.getContentResolver();
String[] mProjection =
{
CalendarContract.Instances._ID,
CalendarContract.Instances.EVENT_ID,
CalendarContract.Instances.CALENDAR_ID,
CalendarContract.Instances.TITLE,
CalendarContract.Instances.EVENT_LOCATION,
CalendarContract.Instances.DESCRIPTION,
CalendarContract.Instances.EVENT_COLOR,
CalendarContract.Instances.DTSTART,
CalendarContract.Instances.DTEND,
CalendarContract.Instances.EVENT_TIMEZONE,
CalendarContract.Instances.EVENT_END_TIMEZONE,
CalendarContract.Instances.DURATION,
CalendarContract.Instances.ALL_DAY,
CalendarContract.Instances.RRULE,
CalendarContract.Instances.RDATE,
CalendarContract.Instances.EXDATE
};
ArrayList<ReadCalendar> allcalendars = getAllCalendars(false, true);
String selection_allcalendars = "";
for (int i = 0; i < allcalendars.size(); i++) {
ReadCalendar cal = allcalendars.get(i);
if (i == allcalendars.size() - 1) {
selection_allcalendars += " (" + CalendarContract.Instances.CALENDAR_ID + " = " + cal.getId() + ") ";
} else {
selection_allcalendars += " (" + CalendarContract.Instances.CALENDAR_ID + " = " + cal.getId() + ") OR ";
}
}
if (selection_allcalendars.length() > 1) {
selection_allcalendars = "(" + selection_allcalendars;
selection_allcalendars += ") AND ";
}
if (selection_allcalendars.length() <= 0) {
selection_allcalendars += " (" + CalendarContract.Instances.CALENDAR_ID + " = -1) AND ";
}
Uri uri = Uri.parse(CalendarContract.Instances.CONTENT_URI + "/" +
Long.toString(from) + "/" +
Long.toString(to));
cur = cr.query(uri, mProjection, selection, null, CalendarContract.Instances.DTSTART + " ASC");
ArrayList<ReadEvent> readevent = new ArrayList<ReadEvent>();
ArrayList<String> available = new ArrayList<>();
MySQLiteHelper db = new MySQLiteHelper(this.c);
TimeZone tz = TimeZone.getDefault();
while (cur != null && cur.moveToNext()) {
...
}
Ich habe eine Kalenderapp programmiert, in der ich diesen Code verwende. Für eine einfache Tagesansicht klappt alles super, die Termine werden unter 80 ms angezeigt. Für eine Wochenansicht braucht dieser Code allerdings ca. 3-5 Sekunden. Dann hängt die App...
Wie machen das Apps wie 'aCalendar' oder die interne Google Kalender App, dass die Termine blitzschnell angezeigt werden?