我正在创建一个Android应用程序,在其生命周期中只需要一次登录,直到用户卸载它。我的意思是,它记住用户名和密码,就像应用程序那样。这是我到目前为止所尝试的......
SharedPreferences prefer = getSharedPreferences("typeOfUser",0);
String x = prefer.getString("xyz","");
if(xyz.equals("")){
// do move to login page
else
// do not move to login page
这是最好的方法吗?告诉我最好的方法,以及它的缺点。
答案 0 :(得分:0)
是SharedPreferences最适合您的应用程序实现一次登录。你需要做的是你需要在SharedPreferences中存储值,然后你可以检查逻辑,创建一个util类,如下所示:
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.preference.PreferenceManager;
public class Utils {
public static void savePreferences(Activity activity, String key1,
String value1, String key2, String value2) {
SharedPreferences sp = PreferenceManager
.getDefaultSharedPreferences(activity.getApplicationContext());
Editor editor = sp.edit();
editor.clear();
editor.putString(key1, value1);
editor.putString(key2, value2);
editor.commit();
}
public static String readPreferences(Activity activity, String key,
String defaultValue) {
SharedPreferences sp = PreferenceManager
.getDefaultSharedPreferences(activity.getApplicationContext());
return sp.getString(key, defaultValue);
}
}
最后我们可以按如下方式使用它
Utils.savePreferences(MainActivity.this, "username", userNameValue,
"password", passwordValue);
并获取数据
Utils.readPreferences(MainActivity.this, "username", "default username");
Utils.readPreferences(MainActivity.this, "password",
"default password");
除此之外你知道你可以使用默认的共享偏好
SharedPreferences sp = PreferenceManager
.getDefaultSharedPreferences(activity.getApplicationContext());
而不是在上面做的是你可以做的是给出具有给定模式的显式命名的sharedpreferences
SharedPreferences sp = activity.getApplicationContext()
.getSharedPreferences("SomePref", activity.MODE_PRIVATE);
在我看来这是实现一次登录的好方法!!并且缺点是,如果有人清除应用程序的数据,那么价值将会消失,但是希望它对您来说不是一个大问题。
注意:您可以根据自己在Util类中对逻辑的需要进行必要的更改。
完全按照您的期望下载完整的示例