Hier ist, wie meine Anwendung gelegt wird:Wird onResume() vor onActivityResult() aufgerufen?
- onResume() Benutzer anmelden aufgefordert wird,
- Wenn in Benutzer anmeldet, kann er mit der App 3. fortsetzen Wenn der Benutzer auf jeder abmeldet Zeit, möchte ich erneut anmelden
Wie kann ich das erreichen?
Hier ist meine MainActivity:
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, onResume():
@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 der Benutzer erfolgreich angemeldet hat:
@Override
protected void onResume(){
super.onResume();
isLoggedIn = prefs.getBoolean("isLoggedIn", false);
if(!isLoggedIn){
showLoginActivity();
}
}
Hier mein LoginActivity ist wird vor onActivityResult() aufgerufen, wenn der Benutzer sich erfolgreich angemeldet hat, wird meine Hauptaktivität nicht noti fied, weil onResume() zuerst aufgerufen wird.
Wo ist der beste Ort, um zur Anmeldung aufzufordern?
Ich stelle IsLoggedIn ein, nachdem sich der Benutzer angemeldet hat. Siehe meinen aktualisierten Code. nicht sicher, was ist falsch? –
Sie haben Recht, onActivityResult() wird vor onResume() aufgerufen. Nicht sicher, warum meine Prefs dann falsch gelesen werden? –
hinzugefügt eine commit() nach meinem putBoolean. Hat den Trick gemacht. –