So ist meine App aufgebaut:
- Der Benutzer onResume () wird aufgefordert, sich anzumelden
- Wenn sich der Benutzer anmeldet, kann er die App 3 weiterhin verwenden . Wenn sich der Benutzer jederzeit abmeldet, möchte ich die Anmeldung erneut veranlassen
Wie kann ich das erreichen?
Hier ist meine Hauptaktivität:
@Override
protected void onResume(){
super.onResume();
isLoggedIn = prefs.getBoolean("isLoggedIn", false);
if(!isLoggedIn){
showLoginActivity();
}
}
Hier ist meine LoginActivity:
@Override
protected void onPostExecute(JSONObject json) {
String authorized = "200";
String unauthorized = "401";
String notfound = "404";
String status = new String();
try {
// Get the messages array
JSONObject response = json.getJSONObject("response");
status = response.getString("status");
if(status.equals(authorized)){
Toast.makeText(getApplicationContext(), "You have been logged into the app!",Toast.LENGTH_SHORT).show();
prefs.edit().putBoolean("isLoggedIn",true);
setResult(RESULT_OK, getIntent());
finish();
}
else if (status.equals(unauthorized)){
Toast.makeText(getApplicationContext(), "The username and password you provided are incorrect!",Toast.LENGTH_SHORT).show();
prefs.edit().putBoolean("isLoggedIn",true);
}
else if(status.equals(notfound)){
Toast.makeText(getApplicationContext(), "Not found",Toast.LENGTH_SHORT).show();
prefs.edit().putBoolean("isLoggedIn",true);
}
} catch (JSONException e) {
System.out.println(e);
} catch (NullPointerException e) {
System.out.println(e);
}
}
}
Nachdem sich der Benutzer erfolgreich angemeldet hat:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Toast.makeText(getApplicationContext(), "BOOM SHAKA LAKA!",Toast.LENGTH_SHORT).show();
}
}
Das Problem ist, dass onResume () vor onActivityResult () aufgerufen wird. Wenn sich der Benutzer erfolgreich angemeldet hat, wird meine Hauptaktivität nicht benachrichtigt, da onResume () zuerst aufgerufen wird.
Wo kann ich mich am besten zur Anmeldung auffordern?