2

ich eine App entwickelt:eine Datenbank zwischen einer App teilen und einem Widget

  • eine Taste einig Daten in einem SQLite-db
  • einige Ansichten setzen Sie die SQLite db Aufzeichnungen zu zeigen und aktualisieren

Jetzt möchte ich ein einfaches Widget schreiben, die nur die Aktion Aktion Aktion ausführen: fügen Sie einige Daten in die SQL-Ebene SQL. Das Ziel ist es, das Widget für den schnellen Einsatz zu verwenden, ohne die App zu öffnen, und die App, wenn ich komplexere Operationen brauche.

  1. ist das Widget der richtige Weg, es zu tun?
  2. ist es möglich, die gleiche db zwischen der App (der echte Besitzer) und dem Widget zu teilen? Wie?
  3. brauche ich einen ContentProvider?

Dank

Antwort

3

ist es möglich, die gleiche db zwischen der App (der wirkliche Besitzer) und das Widget zu teilen?

Ja.

wie?

Normalerweise ist das App-Widget nur ein Teil der App. Sie verwenden es nicht anders als bei einer Aktivität oder einem Fragment oder irgendetwas anderem, da es sich um eine einzige App handelt.

Beachten Sie jedoch, dass AppWidgetProvider Methoden wie onUpdate() im Hauptanwendungs-Thread aufgerufen werden. In einer Aktivität können Sie einfach einen leeren Thread verwenden, um Datenbank-E/A durchzuführen. Dies ist OK, wenn Ihre App im Vordergrund ist. Bei einem App-Widget-Update befindet sich Ihre App jedoch möglicherweise im Hintergrund und Ihr Prozess wird möglicherweise nicht sehr lange dauern. Verwenden Sie eine IntentService, um die Datenbank I/O (gestartet von onUpdate()) und aktualisieren Sie den Inhalt des App-Widget.

Benötige ich einen ContentProvider?

Nur wenn Sie möchten, dass Ihr App-Widget in einer anderen App als der Rest Ihres App-Codes ist. Normalerweise ist das keine gute Idee, denn dann müssen die Benutzer zwei Apps installieren (die Haupt-App plus die App-Widget-App).

+0

weil ich sehr neu in der Android-Entwicklung bin, frage ich Sie ein paar mehr Details ... Wie kann ich ein Widget entwickeln, das Teil meiner App ist? Das Beste wäre, wenn für die Schaltfläche im Widget ich die Rückrufmethode festlegen kann, ist in der Hauptanwendung – acca2o

+0

@ acca2o: Hier ist [die Dokumentation zum Schreiben von App Widgets] (http://developer.android.com/guide /topics/appwidgets/index.html). – CommonsWare

+0

OK, ich lese den Leitfaden. Nur noch eine Frage ... Wenn ich ein App-Widget mit einer Schaltfläche entwickle, um mit der Haupt-App zu interagieren, bedeutet das, dass die Haupt-App geladen ist und im Hintergrund arbeitet? die ganze Zeit? In diesem Fall denke ich, dass es besser ist, ein Widget, das die db teilen und keine Hintergrund-App benötigen. Ist es richtig? – acca2o

Verwandte Themen