该项目的源代码位于https://github.com/github/android
我无法弄清楚 LoginActivity 是如何启动的。HomeActivity 是第一个启动的活动。不知何故,LoginActivity 也启动了。一般来说,最好有一个策略来跟踪什么 Intent 正在启动一个活动(该 Intent 对象在哪里创建)。在这个特定的场景下,我只是想了解一下 Github 开发者是如何实现认证的。
该项目的源代码位于https://github.com/github/android
我无法弄清楚 LoginActivity 是如何启动的。HomeActivity 是第一个启动的活动。不知何故,LoginActivity 也启动了。一般来说,最好有一个策略来跟踪什么 Intent 正在启动一个活动(该 Intent 对象在哪里创建)。在这个特定的场景下,我只是想了解一下 Github 开发者是如何实现认证的。
答案一方面是 RTFM,另一方面是对调试器的工作方式感到惊讶。
Github 使用 AccountManager。您可以从以下位置的文档开始:http: //developer.android.com/training/id-auth/custom_auth.html#ExtendThatThing
<service
android:name=".accounts.AccountAuthenticatorService"
android:exported="false"
android:process=":auth" >
<intent-filter>
<action android:name="android.accounts.AccountAuthenticator" />
</intent-filter>
<meta-data
android:name="android.accounts.AccountAuthenticator"
android:resource="@xml/authenticator" />
</service>
第 2 部分 - 默认情况下,AccountAuthenticator 中设置的断点不会触发,因为它们不在同一个thread
com.github.mobile 中运行。相反,它作为“com.github.mobile:auth”运行。您需要进入 DDMS 透视图以将 com.github.mobile:auth 设置为可调试以使用断点。