Ich habe mit meiner App-Struktur für eine Weile gekämpft. Und es scheint wirklich so zu sein, dass diese Struktur mir bei der Entwicklung anderer Features viel Schmerz bereitet. Bevor ich weiter gehe, möchte ich einen Ratschlag haben und sehen, ob ich hier etwas falsch mache.App-Flow mit AccountManager
Zweck meiner App ist die Verbindung mit einem Server, ich benutze den AccountManager-Mechanismus, um ein Konto auf dem Gerät zu erstellen und ein Token zu speichern, das verwendet werden soll, um Daten vom Server anzufordern. Bei der Erstellung des Accounts ist alles in Ordnung. (Es funktioniert auch in den Geräteeinstellungen -> fügen Sie ein Konto)
Es so geht:
MainActivity die Aktivität ist, die, wenn Sie die App starten, prüfen Sie, ob Sie ein Konto haben. Wenn Sie ein Konto haben, bekomme ich das Token in einer statischen Variable, so dass jedes Fragment in der MainActivity darauf zugreifen kann. (Soll funktionieren, tut es aber nicht) Ansonsten erstelle ich mit LoginActivity eine Absicht, um ein Konto auf dem Gerät zu erstellen. Das Problem ist, dass meine Fragmente dieses Token nicht bekommen können, da, während ich das Token in einem Thread mithilfe von AccountManager.getAuthToken() wiederherstelle, die Fragmente erstellt werden, bevor dieses Token wiederhergestellt wird. Daher kann ich keine Daten von meinem Server anfordern.
Was mich dazu gebracht hat zu denken, dass meine App-Struktur nicht so gut sein könnte. Also dachte ich: "Was ist wenn ich es mag?" :
- Der Benutzer startet die App
- MainActivity wirken wie eine Bootstrap, die für Rechnung überprüfen und Token erhalten, wenn ein Konto auf dem Gerät gibt es aber keine Art von Ansicht wie die aktuelle Version erzeugen. entweder
- MainActivity zu LoginActivity oder ContentActivity umleiten (nennen wir es auf diese Weise, eine Tätigkeit, die mein Token angenommen hat, zu verwenden, um Daten in meinem Listviews aufzufüllen)
Auf diese Weise mich denken lässt, dass MainActivity das Token haben wird Pass aber ich bin mir nicht sicher, es ist ideal in Bezug auf UX. (Ich muss auf Token warten, bevor ich auf einen Inhalt zugreife). Ich bin offen für jeden Vorschlag an diesem Punkt, da ich wirklich feststecke.
Danke!
Update 1:
Es ist eher ein Login/Logik-Anwendung Registrierung als Accountmanager Handhabung. Ich habe es geschafft, sie zum Laufen zu bringen, aber ich habe wirklich Probleme mit der App-Logik-Struktur "Best Practice", so dass ich nicht auf viele andere Probleme stoße (weil ich nicht wirklich Zeit habe). Alles, was ich brauche, ist ein Diagramm oder etwas, das mir ein "Best Practice" -Beispiel zeigt, damit meine App so funktioniert, wie ich oben erklärt habe. Ich stieß auch auf ein Problem, weil, wenn ich die MainActivity starte, es nach einem Konto sucht, und wenn nicht, startet es LoginActivity, aber wenn ich zurückdrücke, kann ich MainActivity (ungefüllt) sehen.
hatte einen Blick auf dem Last.fm-App, die vollständig Open Source ist und er tut diese Art von Sendungen direkt in die „Login“ Aktivität. Er überprüft tatsächlich eine Menge Dinge (wie Vorsatz), weil diese Aktivität verwendet wird, wenn der Benutzer von der Einstellung "Konto hinzufügen" kommt, wenn der Benutzer das App-Widget konfiguriert oder wenn er die App gerade startet. Denkst du, dass das auch ein guter Weg sein könnte? (hier ist der Link des Aktivitätscodes https://github.com/c99koder/lastfm-android/blob/master/app/src/fm/last/android/LastFm.java) Ich möchte auch SplashScreen vermeiden, weil ich denke, es ist schlecht für die UX – CinetiK
Es ist gut. Ja. Wenn man darauf besteht, kann eine einzige Aktivität für alles verwendet werden. –
Vielen Dank, du hast mir wirklich dabei geholfen! Ich habe es geschafft, es jetzt zum Laufen zu bringen. – CinetiK