Voici comment mon application est aménagé:OnResume() est-il appelé avant onActivityResult()?
- utilisateur onResume() est invité à se connecter
- Si l'utilisateur se connecte, il peut continuer à utiliser l'application 3. Si l'utilisateur se connecte à tout temps, je veux inviter l'ouverture de session à nouveau
Comment puis-je y parvenir?
Voici mon MainActivity:
@Override
protected void onResume(){
super.onResume();
isLoggedIn = prefs.getBoolean("isLoggedIn", false);
if(!isLoggedIn){
showLoginActivity();
}
}
Voici mon 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);
}
}
}
Après que l'utilisateur a ouvert une session avec succès:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Toast.makeText(getApplicationContext(), "BOOM SHAKA LAKA!",Toast.LENGTH_SHORT).show();
}
}
Le problème est, onResume() est appelée avant onActivityResult() donc quand l'utilisateur s'est connecté avec succès, mon activité principale n'obtient pas noti car onResume() est appelé en premier.
Quel est le meilleur endroit pour demander une connexion?
Je configure isLoggedIn une fois que l'utilisateur s'est connecté. Voir mon code mis à jour. pas sûr de ce qui ne va pas? –
vous avez raison, onActivityResult() est appelé avant onResume(). Vous ne savez pas pourquoi mes préférences sont mal lues alors? –
ajouté un commit() après mon putBoolean. A fait le tour. –