我对Android应用程序中的google登录有一个非常笼统的问题。
假设我在我的Android设备上使用xxx@gmail.com作为帐户。我在Android应用程序(com.test.app)中通过此帐户登录。
现在,我从设备中删除了帐户。
问题:我是否应该从com.test.app注销? (什么是可取的)
自我挖掘在我见过的几乎所有应用中,它都没有被注销。
答案 0 :(得分:1)
使用 SessionManager
&的 SharedPreferences
强>
在XML&中创建一个按钮;添加OnClick事件就可以了。
然后
session = new CustomSessionManager(getApplicationContext());
session.logoutUser();
这是我的 CustomSessionManager
类。
public class CustomSessionManager {
// Shared Preferences
SharedPreferences pref;
// Editor for Shared preferences
SharedPreferences.Editor editor;
// Context
Context _context;
// Shared pref mode
int PRIVATE_MODE = 0;
// Sharedpref file name
private static final String PREF_NAME = "Amiyo";
// All Shared Preferences Keys
private static final String IS_LOGIN = "IsLoggedIn";
// User name (make variable public to access from outside)
// public static final String KEY_NAME = "name";
// Email address (make variable public to access from outside)
public static final String KEY_EMAIL = "UserEmail";
// Constructor
public CustomSessionManager(Context context){
this._context = context;
pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
editor = pref.edit();
}
/**
* Create login session
* */
public void createLoginSession(String UserEmail){
// Storing login value as TRUE
editor.putBoolean(IS_LOGIN, true);
// Storing name in pref
// editor.putString(KEY_NAME, name);
// Storing email in pref
editor.putString(KEY_EMAIL, UserEmail);
// commit changes
editor.commit();
}
/**
* Clear session details
* */
public void logoutUser(){
// Clearing all data from Shared Preferences
editor.clear();
editor.commit();
// After logout redirect user to Loing Activity
Intent i = new Intent(_context, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
// Closing all the Activities
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
// Add new Flag to start new Activity
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// Staring Login Activity
_context.startActivity(i);
}
/**
* Quick check for login
* **/
// Get Login State
public boolean isLoggedIn(){
return pref.getBoolean(IS_LOGIN, false);
}
}
有关详情,请访问http://www.androidhive.info/2012/08/android-session-management-using-shared-preferences/