我有一个应用程序Private activities
,它只允许登录用户访问,并且Public activities
每个人都可以访问。
我想知道管理访问Private
和Public
活动的最佳方式是什么。
我正在考虑将用户的登录名和密码存储在 中SharedPreferences
,并在每个开始时验证它们以 Private acitivity
在登录名和密码存在时允许访问,如果不存在则拒绝它,但我不确定它是否可能,或者是否有更好的方法来做到这一点。
我有一个应用程序Private activities
,它只允许登录用户访问,并且Public activities
每个人都可以访问。
我想知道管理访问Private
和Public
活动的最佳方式是什么。
我正在考虑将用户的登录名和密码存储在 中SharedPreferences
,并在每个开始时验证它们以 Private acitivity
在登录名和密码存在时允许访问,如果不存在则拒绝它,但我不确定它是否可能,或者是否有更好的方法来做到这一点。
我将通过 SharedPreferences 存储用户登录信息。但请务必以某种方式对其进行加密。如果您不这样做,每个人都可以从手机中复制 shared_preferences.xml 并以明文形式查看密码(如果它已植根)。
管理登录状态的一个好方法是像这样的 LoginManager:
public class LoginManager {
private static LoginManager singelton;
private Context context;
private boolean loggedIn;
private LoginManager(Context c) {
this.context = c;
}
public static LoginManager getInstance() {
return singelton;
}
public static void create(Context c) {
singelton = new LoginManager(c);
}
public boolean isLoggedIn() {
return loggedIn;
}
public boolean login(String name, String password) {
// get shared prefs and check for correct username/password
if(validCredentials)
loggedIn = true;
else
loggedIn = false;
return loggedIn;
}
public void logout() {
loggedIn = false;
}
}
在您的登录屏幕或 Application.onCreate() 中,您可以调用 LoginManager.create(Context c),然后使用 LoginManager.getInstance().login(name, password) 让用户登录。
要检查用户是否从任何活动登录,您可以调用 LoginManager.getInstance().isLoggedIn() 并根据此设置活动特定设置。例如,要隐藏一些活动,您可以检查用户是否已登录,并根据登录状态隐藏/显示该活动的按钮。