यहाँ बताया गया है कि मेरा ऐप किस तरह से बनाया गया है:
- onResume () उपयोगकर्ता को लॉगिन करने के लिए प्रेरित किया जाता है
- यदि उपयोगकर्ता लॉग इन करता है, तो वह ऐप 3 का उपयोग जारी रख सकता है । यदि उपयोगकर्ता किसी भी समय लॉग आउट करता है, तो मैं फिर से लॉगिन करना चाहता हूं
इसे कैसे प्राप्त किया जा सकता है?
यहाँ मेरी मुख्यता है:
@Override
protected void onResume(){
super.onResume();
isLoggedIn = prefs.getBoolean("isLoggedIn", false);
if(!isLoggedIn){
showLoginActivity();
}
}
यहाँ मेरा लॉगिन है:
@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);
}
}
}
उपयोगकर्ता सफलतापूर्वक लॉग इन करने के बाद:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Toast.makeText(getApplicationContext(), "BOOM SHAKA LAKA!",Toast.LENGTH_SHORT).show();
}
}
समस्या यह है कि, onResume () को onActivityResult () से पहले कहा जाता है, इसलिए जब उपयोगकर्ता सफलतापूर्वक लॉग इन कर लेता है, तो मेरी मुख्य गतिविधि को नोटिफाई नहीं किया जाता है क्योंकि onResume () पहले कहा जाता है।
लॉगिन के लिए संकेत करने के लिए सबसे अच्छी जगह कहां है?