簡體   English   中英

為什么我在與sdk 4.0.1集成的Facebook的下一個活動中沒有獲得注銷按鈕

[英]Why i didn't get Logout Button in Next Activity in Facebook Integration with sdk 4.0.1

我成功使用Facebook Sdk 4.0.1登錄並轉到第二個活動即注銷活動,我單擊注銷按鈕,然后再次重定向到主活動,但實際上我又到達了注銷按鈕,這是我的登錄按鈕,由Facebook Sdk更改為注銷。 所以,請告訴我我怎么了。 請告訴我我如何在下一個活動中獲得退出按鈕

 public class MainActivity extends FragmentActivity{ LoginButton loginButton; FacebookSdk mFacebook; private static final String[] PERMISSIONS = new String[] {"public_profile", "user_photos", "read_stream", "email" }; CallbackManager callbackManager; SharedPreferences preferences; String userName, emailId, userFacebookId, userId; URL image_value; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FacebookSdk.sdkInitialize(getApplicationContext()); callbackManager = CallbackManager.Factory.create(); setContentView(R.layout.activity_main); System.out.println("Inside onCreate "); preferences = getSharedPreferences("MyData", Context.MODE_WORLD_WRITEABLE); loginButton = (LoginButton) findViewById(R.id.login_button); loginButton.setReadPermissions(PERMISSIONS); // If using in a fragment // loginButton.setFragment(); // Callback registration LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { SharedPreferences.Editor editor = preferences.edit(); editor.putString("accessToken", loginResult.getAccessToken().toString()); editor.apply(); GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted(JSONObject jsonObject, GraphResponse graphResponse) { try { System.out.println("Inside onSuccess "); userFacebookId = graphResponse.getJSONObject().getString("id"); userName = graphResponse.getJSONObject().getString("name"); emailId = graphResponse.getJSONObject().getString("email"); userId = graphResponse.getJSONObject().getString("link"); try { image_value = new URL("http://graph.facebook.com/" + userFacebookId + "/picture?type=large"); } catch (MalformedURLException e) { e.printStackTrace(); } SharedPreferences.Editor editor = preferences.edit(); editor.putString("userFacebookId", userFacebookId); editor.putString("userName", userName); editor.putString("emailId", emailId); editor.putString("userId", userId); editor.putString("image_value", image_value.toString()); editor.apply(); Intent intent = new Intent(MainActivity.this, logOut.class); startActivity(intent); } catch (org.json.JSONException e) { e.printStackTrace(); } } }); request.executeAsync(); } @Override public void onCancel() { System.out.println("Inside onCancel "); // App code } @Override public void onError(FacebookException exception) { System.out.println("Inside Error " + exception); // App code } }); } @Override public void onBackPressed() { super.onBackPressed(); finish(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); callbackManager.onActivityResult(requestCode, resultCode, data); System.out.println("Inside onActivityResult "+resultCode); } } 

在第二種活動注銷方法中,使用以下行要求LoginManager以以下身份注銷

LoginManager.getInstance().logOut();

因此,它將在您的主要活動中的Facebook登錄按鈕上顯示“登錄”文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM