1

该项目的源代码位于https://github.com/github/android

我无法弄清楚 LoginActivity 是如何启动的。HomeActivity 是第一个启动的活动。不知何故,LoginActivity 也启动了。一般来说,最好有一个策略来跟踪什么 Intent 正在启动一个活动(该 Intent 对象在哪里创建)。在这个特定的场景下,我只是想了解一下 Github 开发者是如何实现认证的。

4

1 回答 1

0

答案一方面是 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 中设置的断点不会触发,因为它们不在同一个threadcom.github.mobile 中运行。相反,它作为“com.github.mobile:auth”运行。您需要进入 DDMS 透视图以将 com.github.mobile:auth 设置为可调试以使用断点。

于 2012-11-05T04:30:43.437 回答