2015-10-27 57 views
2

我正在创建一个需要用户登录Twitter的Android应用程序。当我重新启动用户必须再次登录到Twitter :(手机...进出口使用Twitter API布...有没有人碰到这个问题之前来的问题是,任何帮助,将不胜感激Twitter Fabric当手机重新启动时保持用户登录

import io.fabric.sdk.android.Fabric; 

public class CDOActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener { 

private static final String TWITTER_KEY = "xxx"; 
private static final String TWITTER_SECRET = "xxx"; 
private TwitterLoginButton loginButton; 
private static TwitterSession twitterSession; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET); 
    Fabric.with(this, new Twitter(authConfig)); 
    LoginHandler loginHandler = new LoginHandler(); 

    if (hasHeaders()) { 
     loginButton = new TwitterLoginButton(this); 
     loginButton.setCallback(loginHandler); 
     setListFooter(loginButton); 
    } 
} 

public class LoginHandler extends Callback<TwitterSession> { 
    @Override 
    public void success(Result<TwitterSession> result) { 
     TwitterSession session = result.data; 
     final TwitterApiClient twitterApiClient = TwitterCore.getInstance().getApiClient(session); 
     new TweetService(twitterApiClient, getApplicationContext()); 
     twitterSession = session; 
     loginButton.setVisibility(View.GONE); 
    } 

    @Override 
    public void failure(TwitterException e) { 
     Log.i("Problem...","An error was logged from {@code LoginHandler}"); 
    } 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    loginButton.onActivityResult(requestCode, resultCode, data); 
    } 
} 

回答

0

我也有同样的问题,其实我的是关闭应用程序时注销。

我用SessionManager来检查是否有应用程序的任何活动会话,如果不是,重定向到登录否则我正在执行下一组动作,即在那个if..else条件下调用该函数,我检查了两次,即使重新启动手机后它也会自动登录。是你的主要问题)。

示例代码:

TwitterSession twitterSession = TwitterCore.getInstance().getSessionManager().getActiveSession(); 
     if(twitterSession!=null) 
     { 
      getTwitterData(twitterSession); //Custom function in which am fetching the user's profile data 
      loginButton.setVisibility(View.INVISIBLE); 
      Toast.makeText(getApplicationContext(), "Welcome Back", Toast.LENGTH_LONG).show(); 
     } 

使用它里面onCreate方法。

希望有所帮助。

谢谢。

相关问题