2010-12-21 12 views
1

Ich arbeite derzeit an einer Android App, die verschiedene Service-Dimensionen wie "Serviceauftrag", "Routenplanung", "Fotogalerie" und eine zentrale Anmeldung hat. Bisher implementierte ich jeden "Bildschirm" (und auf dem Bildschirm meine ich eigentlich das Layout eines Bildschirms) als eine separate Klasse, die ein bestimmtes Layout lädt und alle Listener und Kernfunktionen wie das Aufrufen von Webservices in einem Thread, Antworten usw Ich bin mir nicht ganz sicher, ob dies der beste Weg ist, um mehrere Layout-Bildschirme zu implementieren.Wie man mehrere Bildschirme innerhalb einer App implementiert

Die Android Dev-Richtlinie schlägt vor, für jedes "Bildschirmlayout" einzelne Aktivitäten zu verwenden. Ich bezweifle jedoch, dass dies der effektivste Weg ist, Dinge zu tun. Da ich für jedes "Layout" Informationen benötige, die vom zentralen Login (hier: ein Benutzerobjekt) abgerufen werden. Da eine Aktivität (soweit ich das verstehe) ein separater Thread ist, scheint das Übergeben und Abrufen von Informationen nicht sehr praktisch zu sein.

Ich möchte Ihre Meinung/Feedback darüber und danke für jeden Hinweis oder Tipp.

Bisher meine Struktur wie folgt aussieht:

  • Aktivität
    • Lasten Layout anmelden (res/layout/login.xml mit setlContentView)
    • auf Button anderen Ressourcen abhängig sind geladen und initialisiert (Mittel Hörer hinzugefügt usw.)

Greets Peter

Antwort

3

Die Dev-Richtlinien empfehlen, dass aus einem bestimmten Grund. Es ist der effektivste Weg, Dinge zu tun. Sie können sich beschweren, dass Sie Ihre Daten speichern müssen, damit sie von Aktivität zu Aktivität weitergegeben werden können, aber raten Sie mal, was? Du entwickelst eine App für ein Handy! Zu jedem Zeitpunkt kann das Telefon klingeln, sodass der Benutzer gezwungen ist, die App zu deaktivieren. Oder der Benutzer könnte einfach nur eine andere App ansehen. Wenn Ihre App nach dem Zurückschalten auf Platz eins zurückkehrt und alle Daten verloren hat, ist der Benutzer verständlicherweise verärgert.

+0

Vielen Dank für das Feedback, also würden Sie empfehlen, diese Daten lieber persistent auf dem Telefon zu speichern, als sie von Aktivität zu Aktivität zu übergeben? Du hast hier einen gültigen Punkt, also selbst wenn ich die Daten von Aktivität zu Aktivität übergebe, wird sie verloren gehen, wenn die App unterbrochen wird ... also muss ich sie auf dem Telefon speichern (da ich den Benutzer nicht möchte Loggen Sie sich jedes Mal ein, wenn die App unterbrochen wird.) – Peter

+0

Hängt davon ab, wie lange Sie es haben wollen. Wenn Sie es in den SharedPreferences speichern, wird es auch nach dem Zurücksetzen des Telefons durch den Benutzer angezeigt. Ein bisschen nett. Aber es ist nicht schaden, es nur in der Absicht weiterzugeben - das ist gut genug, um die normalen Fälle (einschließlich wechselnder Ausrichtung des Telefons) zu behandeln. – EboMike

0

Ich weiß nicht, ob dies für Ihre App geeignet wäre, aber eine andere Option könnte sein, die Kerndatenbehandlung in einen Service zu trennen und Ihre App nur ein UI-Frontend zu sein, das mit diesem Dienst kommuniziert.

Verwandte Themen