Facebook SDK中几乎没有内存泄漏

Den*_*ski 10 android memory-leaks facebook-android-sdk

我试图为我的应用程序制作社交模块,类似于包装器,它将包含Google +,Facebook和Twitter集成模板.

现在我正在使用Facebook SDK并决定在我的应用程序中使用LeakCanary,在成功登录后我将设备旋转几次,并查看以下信息:

在此输入图像描述

这是MainActivity.class:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);
    setFragment();

}
private void setFragment(){
    getSupportFragmentManager()
            .beginTransaction()
            .add(R.id.container, new MainFragment())
            .commit();
}
}
Run Code Online (Sandbox Code Playgroud)

以下是我登录Facebook的方式:

 public void configureFacebook(@NonNull Fragment fragment,
                              @Nullable String permissions, @Nullable String requestFields) {
    setPermissionAndRequestFields(permissions, requestFields);
    loginManager = LoginManager.getInstance();
    callbackManager = CallbackManager.Factory.create();
    loginManager.registerCallback(callbackManager, facebookCallback);
    loginManager.logInWithReadPermissions(fragment, Arrays.asList(this.permissions));
    loginManager=null;

}
Run Code Online (Sandbox Code Playgroud)

我尝试使用登录按钮登录,在这种情况下,我抓住了这个问题和新的问题,并提供以下信息:

在此输入图像描述

以下是我使用LoginButton.class登录的方法:

  public void configureFacebook(@NonNull Fragment fragment,
                              @Nullable String permissions, @Nullable String requestFields, @NonNull LoginButton button) {
    callbackManager = CallbackManager.Factory.create();
    setFbButton(button);
    setPermissionAndRequestFields(permissions, requestFields);
    fbButton.setFragment(fragment);
    fbButton.setReadPermissions(this.permissions);
    fbButton.registerCallback(callbackManager, facebookCallback);

}
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何解决这些问题.我做错了什么?

更新:Facebook中的泄漏Activity.class已显示没有旋转设备.

Rei*_*Mac 1

看起来他们可能已经修复了 Facebook SDK 版本 4.2.0 的问题。看这里

更新 Facebook SDK 可能可以解决您的问题。