gpt4 book ai didi

android - 无法从其他 Activity 注销(Facebook - Android)

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:12:31 25 4
gpt4 key购买 nike



我正在创建一个应用程序,我成功地解决了使用 Facebook SDK 4.7.0 登录 Facebook 的问题。我正在使用 LoginManager(不是 LoginButton),因为我想为此设置一个自定义按钮。
流程是这样的:

  • 打开应用程序并受到 MainActivity 的欢迎
  • 单击“开始”按钮并打开 SignInActivity,您可以在其中单击“使用 Facebook 登录”按钮,登录并关闭此 Activity
  • 然后您又回到了 MainActivity 屏幕
  • 在抽屉导航 slider 中,我在底部有一个注销按钮,我对其进行了初始化,并且仅在您登录时显示它,即当您的 Facebook 个人资料的 user_id 不是 null 时。

我在注销按钮 onClickListener 上实现了以下内容:

FacebookSdk.sdkInitialize(getApplication().getApplicationContext());
LoginManager.getInstance().logOut();

但是,当我按下设备上的按钮时,它没有执行任何操作(在 logcat 中仅显示 ViewPostImeInputStage ACTION_DOWN,这是按钮按下的标准。

我在 SO 上看到了其他帖子,其中这种方法有效,所以我不明白为什么它在我的情况下不起作用。

SignInActivity.java

    FacebookSdk.sdkInitialize(getApplication().getApplicationContext());

callbackManager = CallbackManager.Factory.create();

LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.e(TAG, "User ID: " + loginResult.getAccessToken().getUserId());
Log.e(TAG, "Auth Token: " + loginResult.getAccessToken().getToken());
SharedPreferences prefs = getSharedPreferences("com.dotfreeride.dotfreeride.login", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("userId", loginResult.getAccessToken().getUserId());
editor.putString("fbToken", loginResult.getAccessToken().getToken());
editor.commit();
}

@Override
public void onCancel() {
Toast.makeText(SignInActivity.this, "Login attempt canceled!", Toast.LENGTH_SHORT).show();
}

@Override
public void onError(FacebookException error) {
Toast.makeText(SignInActivity.this, "Login attempt failed!", Toast.LENGTH_SHORT).show();
}
});

MainActivity.java

logoutBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FacebookSdk.sdkInitialize(getApplication().getApplicationContext());
LoginManager.getInstance().logOut();
}
});

最佳答案

这对我有用

public class Profile extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);


}

public void gotoLogin(View view){
FacebookSdk.sdkInitialize(getApplicationContext());
LoginManager.getInstance().logOut();
Intent intent = new Intent(this, Login.class);
startActivity(intent);
}

我遇到了同样的问题,因为我扩展了 AppCompatActivity。使用 ActionBar 它可以工作。希望它能为您完成工作:)

关于android - 无法从其他 Activity 注销(Facebook - Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33759961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com