0

我有一个应用程序Private activities,它只允许登录用户访问,并且Public activities每个人都可以访问。

我想知道管理访问PrivatePublic活动的最佳方式是什么。

我正在考虑将用户的登录名和密码存储在 中SharedPreferences,并在每个开始时验证它们以 Private acitivity在登录名和密码存在时允许访问,如果不存在则拒绝它,但我不确定它是否可能,或者是否有更好的方法来做到这一点。

4

1 回答 1

1

我将通过 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() 并根据此设置活动特定设置。例如,要隐藏一些活动,您可以检查用户是否已登录,并根据登录状态隐藏/显示该活动的按钮。

于 2013-08-14T15:50:03.590 回答