Android 如何从其他活动中注销facebook?
我正在使用facebook SDK 4.4.0。我想从另一个活动中注销facebook? 如何在其他活动中添加注销功能? 我想在成功登录后转到另一个活动,并在该活动中添加注销功能Android 如何从其他活动中注销facebook?,android,facebook,sdk,Android,Facebook,Sdk,我正在使用facebook SDK 4.4.0。我想从另一个活动中注销facebook? 如何在其他活动中添加注销功能? 我想在成功登录后转到另一个活动,并在该活动中添加注销功能 loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override publ
loginButton.registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
new fblogin().execute(loginResult.getAccessToken());
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException e) {
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
class fblogin extends AsyncTask<AccessToken, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setMessage("Wait.....");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
protected String doInBackground(AccessToken... params) {
GraphRequest request = GraphRequest.newMeRequest(params[0],
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object,
GraphResponse response) {
Log.v("MainActivity", response.toString());
try {
username = object.getString("first_name");
emailid = object.getString("email");
gender = object.getString("gender");
Log.v("User Name", username);
Log.v("Email", emailid);
Log.v("Gender", gender);
} catch (JSONException e) {
// TODO Auto-generated catch
// block
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields",
"id,first_name,email,gender,birthday");
request.setParameters(parameters);
request.executeAndWait();
return null;
}
protected void onPostExecute(String file_url) {
pDialog.dismiss();
}
}
loginButton.registerCallback(callbackManager,
新建FacebookCallback(){
@凌驾
成功时公共无效(LoginResult LoginResult){
新建fblogin().execute(loginResult.getAccessToken());
}
@凌驾
公开作废{
}
@凌驾
公共无效onError(FaceBook例外e){
}
});
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
callbackManager.onActivityResult(请求代码、结果代码、数据);
}
类fblogin扩展了异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
pDialog=新建进度对话框(MainActivity.this);
setMessage(“等待…”);
pDialog.setUndeterminate(假);
pDialog.setCancelable(假);
pDialog.show();
}
受保护的字符串doInBackground(AccessToken…参数){
GraphRequest请求=GraphRequest.NewMereRequest(参数[0],
新建GraphRequest.GraphJSONObjectCallback(){
@凌驾
未完成的公共void(JSONObject对象,
GraphResponse(反应){
Log.v(“MainActivity”,response.toString());
试一试{
username=object.getString(“first_name”);
emailid=object.getString(“电子邮件”);
性别=object.getString(“性别”);
Log.v(“用户名”,用户名);
Log.v(“电子邮件”,emailid);
第五段(“性别”,性别);
}捕获(JSONException e){
//TODO自动生成的捕获
//挡块
e、 printStackTrace();
}
}
});
Bundle参数=新Bundle();
parameters.putString(“字段”,
“身份证、名字、电子邮件、性别、生日”);
请求。设置参数(参数);
request.executeAndWait();
返回null;
}
受保护的void onPostExecute(字符串文件\u url){
pDialog.disclose();
}
}
试试这个方法
public static void LogoutFB(Context context) {
Session session = Session.getActiveSession();
if (session != null) {
if (!session.isClosed()) {
session.closeAndClearTokenInformation();
//clear your preferences if saved
}
} else {
session = new Session(context);
Session.setActiveSession(session);
session.closeAndClearTokenInformation();
//clear your preferences if saved
}
}
首先初始化
FacebookSdk.sdkinInitialize(getApplicationContext())代码>在您的活动上,然后在按钮单击事件上编写以下代码:
LoginManager.getInstance().logOut()代码>
完成了 登录后,确保隐藏Facebook登录按钮的可见性
然后,按“正常”按钮上的setOnClickListner并使用以下命令:
LoginManager.getInstance().logOut();
敬酒以确认用户。它是否适用于facebook sdk 4.4.0?您尝试过吗?自从facebook的Android sdk v4.0以来,您需要执行以下操作:LoginManager.getInstance().logOut();sdkinInitialize(getApplicationContext());现在不推荐使用。