最新的Facebook SDK Android版4.17.0和4.18.0版本導致內存泄漏的日誌實現。有一種方法來註冊回調,但也應該有方法來取消註冊,例如onDestroy()方法。你知道如何註銷Facebook LoginButton執行回調嗎?註銷回調Facebook的登錄按鈕
我註冊Facebook的回調在的onCreate()這樣:
mCallbackManger = CallbackManager.Factory.create();
mFacebookLoginBtn.setReadPermissions("public_profile");
mFacebookLoginBtn.registerCallback(mCallbackManger, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Timber.d("Facebook login success %s", loginResult.toString());
showProgressDialog();
getPresenter().loginWithFacebook(loginResult.getAccessToken());
}
@Override
public void onCancel() {
Timber.d("Facebook login cancel");
}
@Override
public void onError(FacebookException error) {
Timber.d("Facebook login error %s", error.toString());
}
});
我忘了提,按鈕沒有顯示在屏幕上,但我傳遞給它onclick事件我自定義按鈕。當它發生時,問題的原因就是那個奇怪的呼叫。將最終的溶液中除去mFacebookLoginBtn的並調用定製按鈕onClick事件:
LoginManager.getInstance().logInWithReadPermissions(this, Collections.singletonList("public_profile"));
Facebook SDK有一個'unregisterCallback(最終CallbackManager callbackManager)'方法。你試過了嗎? – saltandpepper