Đây là cách ứng dụng của tôi được bố trí:
- người dùng onResume () được nhắc đăng nhập
- Nếu người dùng đăng nhập, anh ta có thể tiếp tục sử dụng ứng dụng 3. Nếu người dùng đăng xuất bất kỳ lúc nào, tôi muốn nhắc đăng nhập lại
Làm thế nào tôi có thể đạt được điều này?
Đây là MainActivity của tôi:
@Override
protected void onResume(){
super.onResume();
isLoggedIn = prefs.getBoolean("isLoggedIn", false);
if(!isLoggedIn){
showLoginActivity();
}
}
Đây là LoginActivity của tôi:
@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);
}
}
}
Sau khi người dùng đăng nhập thành công:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Toast.makeText(getApplicationContext(), "BOOM SHAKA LAKA!",Toast.LENGTH_SHORT).show();
}
}
Vấn đề là onResume () được gọi trước onActivityResult () nên khi người dùng đăng nhập thành công, hoạt động chính của tôi không được thông báo vì onResume () được gọi trước.
Đâu là nơi tốt nhất để nhắc đăng nhập?