0
我正在爲更大的項目實施Facebook登錄。作爲組織代碼的嘗試(並且我的意思是儘可能保持活動與按鈕儘可能乾淨),我想我可能已經打破了一些主要黑客的實際登錄過程。但我知道它應該工作。這個想法是在登錄後啓動另一項活動。 這裏是我的MainActivity:試圖在Android上使用Facebook登錄sdk並組織代碼
public class MainActivity extends ActionBarActivity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.activity_main);
Button facebookLoginButton = (Button) findViewById(R.id.btn_facebook_login);
facebookLoginButton.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_facebook_login:
FacebookHelper.sMainActivityContext = getApplicationContext();
LoginManager.getInstance().registerCallback(FacebookHelper.sCallbackManager,
FacebookHelper.sFacebookCallback);
LoginManager.getInstance().logInWithReadPermissions(this,
Arrays.asList(AppResources.sFacebookPermissions));
break;
}
}
}
與侵入本身,「FacebookHelper」:
public class FacebookHelper {
public static final CallbackManager sCallbackManager = CallbackManager.Factory.create();
public static Context sMainActivityContext;
public static final FacebookCallback<LoginResult> sFacebookCallback =
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Intent intent = new Intent(sMainActivityContext, SecondActivity.class);
sMainActivityContext.startActivity(intent);
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException e) {
}
};
}
但是當我按下按鈕,用於登錄只是閃爍的Facebook活動,我回來了,在主要活動。爲什麼會發生?我需要做什麼來實現工作Facebook登錄與分離的代碼和而不是使用LoginButton從Facebook?
偉大的答案,就像一個魅力,謝謝!這太糟糕了,我實際上無法分離代碼,但我仍然比LoginButton更喜歡這種方式。 – Deegriz 2015-04-04 18:54:36