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() を呼び出し、これに従ってアクティビティ固有の設定を設定します。たとえば、一部のアクティビティを非表示にするには、ユーザーがログインしているかどうかを確認し、ログイン ステータスに応じてそのアクティビティのボタンを非表示/表示することができます。