我正在尝试使用缓存开发一个应用程序。该应用程序将检查服务器中的登录凭据并允许用户。我希望用户只登录一次,例如 Facebook , G mail 应用等。
到目前为止,我正尝试使用共享的首选项来首次存储登录凭据,当用户下次尝试打开应用程序时,我将使用存储的凭据登录。但是我想像G邮件应用程序那样简化它,仅当我需要登录时,下次用户打开该应用程序时,除非他注销,否则不会向他显示登录页面。
在 onCreate 中,我正在检查是否已存储凭据,然后我将使用该凭据登录,否则用户必须输入登录凭据并按登录按钮。
sharedPref_login = MainActivity.this.getSharedPreferences("login_credentials",Context.MODE_PRIVATE);
username = sharedPref_login.getString("username", defaultValue);
password = sharedPref_login.getString("password", defaultValue);
roles = sharedPref_login.getString("roles", defaultValue);
if (!username.equals("")){
if (!isInternetOn()){
Toast.makeText(MainActivity.this, "Restart the application once the internet connection established", Toast.LENGTH_SHORT).show();
}
else {
Applogin(username, password, millisInString);
}
}
除非他按注销按钮,否则我只想登录一次即可避免这种方法。
答案 0 :(得分:0)
您应该使用 SharedPreferences
这是为了保存数据:
SharedPreferences prefs = getSharedPreferences("UserData", MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("username", username);
editor.putString("password", password);
editor.commit();
这是为了检索它:
SharedPreference prefs = getSharedPreferences("UserData", MODE_PRIVATE);
String username = prefs.getString("username","");
String pwd = prefs.getString("password","");
答案 1 :(得分:0)
//Fetching id from shared preferences
SharedPreferences sharedPreferences;
sharedPreferences =getSharedPreferences(Constant.SHARED_PREF_NAME, Context.MODE_PRIVATE);
username = sharedPreferences.getString(Constant.USERNAME_SHARED_PREF, "");
password = sharedPreferences.getString(Constant.PASSWORD_SHARED_PREF, "");
if(!username.equals("")){
Intent intent = new Intent(getApplicationContext(),LoginActivity.class)
startActivity(intent)
}else{
if (!isInternetOn()){
Toast.makeText(MainActivity.this, "Restart the application once the internet connection established", Toast.LENGTH_SHORT).show();
}
else {
Applogin(username, password, millisInString);
}
}