UiLifeCycleHelper如何在facebook SDK中使用LoginButton

时间:2015-03-15 07:45:22

标签: android facebook facebook-android-sdk

我正在尝试使用facebook SDK学习android开发。

今天我尝试了登录部分。 然而事情是我在这方面有很多困惑,因为我不明白uiLifeCycleHelper和LoginButton是如何相互作用的。

来自样本:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" tools:context="co.chintan.fbtest.SplashFragment"
>

<com.facebook.widget.LoginButton
    android:id="@+id/login_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="130dp"
    />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@id/login_button"
    android:text="@string/get_started"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="20dp"/>

</RelativeLayout>

这是登录屏幕,它有一个登录按钮,从代码中可以看出。

主要活动流程如下:

  • onCreate方法有一个uiLifeCyleHelper,它接收activity和statusCallback对象。
  • Session.StatusCallBack对象侦听会话更改,内部类实现onChange方法,如果有会话,则显示经过身份验证的UI;如果没有会话,则显示非经过身份验证的UI。

现在我的问题是uiLifeCycleHelper是如何使用在layout xml中创建的LoginButton的,因为在我创建的MainActivity类中没有LoginButton的实现,即使那时似乎有一个LoginButton的监听器,就像当我点击登录按钮,我可以登录并创建一个会话并加载我认证的用户界面。

我看到了SDK源代码,但即使在那里我也没有看到loginButton的任何监听器。

1 个答案:

答案 0 :(得分:0)

uiLifecycleHelper.onActivityResult方法将登录结果传递给Session对象。 LoginButton包含一个SessionTracker(SDK中的内部类),用于跟踪会话更改,这是登录成功的时间。