Okay, der gesamte Android-Account-Authentifizierungs- und Sync-Adapter-Mechanismus kann auf den ersten Blick ziemlich kompliziert sein, und GitHub Android-App fügt eine weitere Ebene der Komplexität hinzu, aber ich werde versuchen, Ihnen den ganzen Fluss zu erklären (ich hoffe, dass meine Verständnis ist richtig).
Zuerst würde ich Ihnen this article über Android Authenticator empfehlen, wenn Sie mit dem Thema noch nicht vertraut sind. GitHub Android verwendet genau den gleichen Mechanismus, der in diesem Artikel beschrieben wird.
Sie haben recht, HomeActivity
wird zuerst gestartet. Es startet dann OrganizationLoader, um eine Liste von Organisationen zu laden. Dieser Loader ruft die Methode von OrganizationService
auf, die ein Teil von GitHub Java API ist. GitHub Android verwendet RoboGuice
, um das Injizieren der am häufigsten verwendeten Klassen wie GitHub API-Dienste zu konfigurieren. Sie können sehen, dass OrganizationService in ServicesModule erstellt wird. Es dauert GithubClient
als Konstruktor Parameter und es gibt auch eine GitHubModule, die konfiguriert ist, um AccountClient zurückgeben, wenn eine Instanz von GitHubClient
benötigt wird. AccountClient
überschreibt configureRequest()
Methode und
String token = account.getAuthToken();
Dies ist eine Methode der GitHubAccount Klasse aufruft, das AccountManager
eine Methode aus dem internen Android aufruft. Und AccountManager
ist konfiguriert, das AccountAuthenticator zu verwenden, über das Sie gesprochen haben, das LoginActivity
Intent zurückgibt, wenn es kein Konto auf Gerät gibt.
Hoffe das hilft :)
SharedPreferences, wenn ein Konto gespeichert ist, melden Sie sich an, wenn die Aktivität nicht angezeigt wird. Ich weiß nicht, wie sie es machen, aber es ist ein Weg, wie es gemacht werden kann. –