1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

2 Fragen über Dateioperationen und Aktualisierungen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von thrawn80, 11.11.2010.

  1. thrawn80, 11.11.2010 #1
    thrawn80

    thrawn80 Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    10.11.2010
    Falls jemand helfen könnte, wär super.

    Erste Frage:

    Ich habe bei mir Datum und Uhrzeit reingebastelt, dabei die beiden Sachen aus .getXXX und Calendar nach meinen Bedürftnissen angepasst.
    Wie bekomme ich es am effizientesten hin, dass die Zeit sich alle Minute aktualisiert?

    Zweite Frage:

    Ich verwende 2 Datenbanken, die ich teilweise im Vorfeld erstellt habe und auf der SD-Karte abgelegt habe.
    Die Query-Abfragen sind scheinbar teilweise recht rechenintensiv, nach Drücken eines Buttons dauert es ca. 2 Sek. bis er die Operationen ausführt.
    Nun würde ich gerne die DBs zum Start des App in den Arbeitsspeicher oder wenigstens in den internen Speicher kopieren.
    Wie komme ich da ran oder womit bekomme ich das ohne rooten hin?

    Danke im Voraus.
     
  2. funcoder, 11.11.2010 #2
    funcoder

    funcoder Erfahrener Benutzer

    Beiträge:
    218
    Erhaltene Danke:
    38
    Registriert seit:
    15.08.2009
    Zu deiner ersten Frage, habe ich kürzlich erst was gespostet:
    http://www.android-hilfe.de/722074-post5.html
    Sofern ich dich richtig verstanden habe, und du möchtest das jede Minute, dein Code, der die aktuelle Uhrzeit ausließt aufgerufen werden soll.

    Zu deiner zweiten Frage kann ich dir nicht wirklich weiterhelfen. Du solltest auf jeden Fall sichergehen, dass dein sql query performant wie möglich ist. Also deine Datenbanken möglich denormalisiert halten, Joins vermeiden und die Bedingung möglichst weit einschränken.
    Vielleicht würde es auch funktionieren, bereits beim App Start die SQL Querys abzusetzen, sodass dann bei Ausführung des Button Codes nur noch die Daten ausgewertet werden müssen. Sicherlich, du hast die Ladezeit dann am Start des Apps, aber das wird den Benutzer deutlich weniger frustrieren, als wenn das App mitten in der Ausführung "hängen" bleibt ;-)
     
  3. thrawn80, 11.11.2010 #3
    thrawn80

    thrawn80 Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    10.11.2010
    Die Uhrzeit wird mitten im Hauptmenü als Textview angezeigt.
    Ich möchte natürlich nicht, dass während der Wartezeit das ganze System steht und blockiert wird. Wird das nicht mit Sleep erreicht?


    Zum Zweiten:
    Ich hab mir mal die Zeiten ausrechnen lassen, die die SQL-Operationen so brauchen. Für das "where-like"Auslesen aus einer 100 Zeilen langen Tabelle braucht er 6-50ms, was nicht so dramatisch ist.
    Aber das Schreiben von 3 (DREI) Werten in eine temporäre Tabelle dauert 180-700ms, die Werte schwanken teilweise extrem stark.
    Da muß doch irgendwas faul sein.

    Liegt es am Code oder dem verwendeten SQL-Befehl?

     
  4. funcoder, 11.11.2010 #4
    funcoder

    funcoder Erfahrener Benutzer

    Beiträge:
    218
    Erhaltene Danke:
    38
    Registriert seit:
    15.08.2009
    Ok, also ein insert mit 3 Werten sollte definitiv nicht mal annähernd 180 ms dauern.
    Dein Code sieht aber auch nicht verdächtig aus. Hier hat jemand das gleiche Problem: Link

    Und zum sleep: Richtig die Programmausführung wird angehalten, weshalb du diesen Code auch in einen extra Thread auslagern solltest. Andere Möglichkeit fällt mir spontan nicht ein. In Java gibt es ja so eine Art "Timer" wie in VB nicht, oder? ;)
     
  5. thrawn80, 11.11.2010 #5
    thrawn80

    thrawn80 Threadstarter Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    10.11.2010
    Neues von der Front:

    nachdem ich recherchiert habe, dass selbst das Schreiben von Bytes auf der SD-Karte 200ms dauern soll, habe ich mal testweise die DB im internen Speicher angelegt.
    Und siehe da, die Gesamtzeit reduziert sich von mittleren 3400ms auf 300ms.

    Pervers das Ganze... :angry:
     
  6. Fr4gg0r, 11.11.2010 #6
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    Du hast ja in deinem /data/data/dein.package/ Ordner Schreibrechte :winki:
     

Diese Seite empfehlen