ist, was Im tun bei der Anmeldung des Benutzers in:
private static final String APP_SHARED_PREFS = "asdasd_preferences";
SharedPreferences sharedPrefs;
Editor editor;
private boolean isUserLoggedIn;
sharedPrefs = getApplicationContext().getSharedPreferences(APP_SHARED_PREFS, Context.MODE_PRIVATE);
isUserLoggedIn = sharedPrefs.getBoolean("userLoggedInState", false);
editor = sharedPrefs.edit();
editor.putBoolean("userLoggedInState", true);
editor.putInt("currentLoggedInUserId", userId);
editor.commit();
Intent signupSuccessHome = new Intent(this, Home.class);
signupSuccessHome.putExtra("reqFrom", "login");
startActivity(signupSuccessHome);
finish();
in der Basisaktivität, die alle meine Aktivitäten erweitern (es die ActionBar enthält und das Schiebe-Menü) Ich habe die folgende Kontrolle: (mainactivity ist mein Login/registrieren Bildschirm, wenn der Benutzer in im nicht angemeldet ist sie dort) zu senden
@Override
protected void onResume() {
sharedPrefs = getApplicationContext().getSharedPreferences(APP_SHARED_PREFS, Context.MODE_PRIVATE);
isUserLoggedIn = sharedPrefs.getBoolean("userLoggedInState", false);
if (!isUserLoggedIn) {
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
super.onResume();
}
@Override
protected void onRestart() {
sharedPrefs = getApplicationContext().getSharedPreferences(APP_SHARED_PREFS, Context.MODE_PRIVATE);
isUserLoggedIn = sharedPrefs.getBoolean("userLoggedInState", false);
if (!isUserLoggedIn) {
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
super.onRestart();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sharedPrefs = getApplicationContext().getSharedPreferences(APP_SHARED_PREFS, Context.MODE_PRIVATE);
isUserLoggedIn = sharedPrefs.getBoolean("userLoggedInState", false);
currentlyLoggedInUser = sharedPrefs.getInt("currentLoggedInUserId", 0);
currentlyLoggedInUserString = Integer.toString(currentlyLoggedInUser);
if (!isUserLoggedIn) {
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
und den Benutzer zu verhindern, zum Login-Bildschirm aus geht zurück. in Login.java:
isUserLoggedIn = sharedPrefs.getBoolean("userLoggedInState", false);
if (isUserLoggedIn) {
Intent intent = new Intent(this, Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
in Home.java:
@Override
public void onBackPressed() {
Intent intent = new Intent(this, Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
super.onBackPressed();
}
Wenn Ihre Anwendung speichert nur 1 Benutzername und Passwort, dann Ihre Methode perfekt ist, es keine Notwendigkeit zu ändern. Wenn Sie jedoch mehrere Benutzer haben, wird empfohlen, die SQLite-Datenbank zu verwenden. –
Hi Stealz, die tatsächlichen Anmeldeinformationen sind in Remote-Server überprüft. nicht im Handy. shared preference wird verwendet, um nur eine Benutzerinformation zu speichern. – Bennet