AlertDialog не отображается в другой активности
Функция:
Диалоговый метод оповещения был создан для уведомления пользователя о состоянии учетной записи, следовательно, диалоговое окно появится, когда пользователь вышел из системы удаленно. Кроме того, в приложении есть 4 действия; следовательно, когда учетная запись зарегистрирована, появится диалоговое окно, когда пользователь решит перейти к следующему действию. После этого всплывающее диалоговое окно вернет пользователя на страницу входа в систему после подтверждения.
Выпуск:
Диалоговое окно оповещения не появляется, когда учетная запись пользователя вышла из системы, bttn для выхода из системы был изменен на вход в систему, а учетные данные sharedpreference были очищены. Он по-прежнему позволяет пользователю перемещаться по приложению, приложение будет отображаться через некоторое время.
Что пошло не так с кодами и предложениями?
Код
//Build an AlertDialog to notify user on Session Logout status
static Builder alertDialog(final Activity act,final Intent yourintent){
Log.i("RootActivity:alertDialog","******Session Logout Info******");
AlertDialog.Builder alertDialog = new AlertDialog.Builder(act);
alertDialog.setTitle("Sign In For Spacetobe Services");
alertDialog.setMessage("For security reasons, you have been automatically logged out after 20 minutes of inactivity." +
"To access Spacetobe services, please sign in again.");
alertDialog.setCancelable(false);
//SETTING OF OK BUTTON
alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//Intent yourintent = new Intent(Intent.ACTION_VIEW);
//yourintent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
act.startActivity(yourintent);//Return page to PROPERTYACTIVITY
}
}); return alertDialog;
}
//LOGOUT METHOD & CLEARING OF SHARED PREFERENCE CREDENTIALS
public void IdleLogout(){
Log.i("RootActivity:IdleLogout()","******APP LOGGEDOUT******");
//SharedPreference method cleared
Log.i("RootActivity:IdleLogout()","******loginButton is set******");
setloginButton(); // Change logout button to login
checkTimeout=true; // Global timeout is true
//RootActivity.alertDialog(this,getCustomIntent(PropertyActivity.class)).create().show();
}
//EDITED VERSION TO GET LOGOUT DIALOG WHEN USER TRIES TO NAVIGATE TO OTHER ACTIVITY BY BACK BTTN WHEN LOGGED OUT
@Override
public void onBackPressed(){
Log.i("RootActivity:onBackPreseed()","******Back bttn has been selected******");
if (checkTimeout==true){
Log.i("RootActivity:onCreate(Bundle savedInstanceState)","******Timeout=true******");
RootActivity.alertDialog(this,getCustomIntent(PropertyActivity.class)).create().show();
checkTimeout = false;
}return;
}
//END OF EDITED VERSION TO GET LOGOUT DIALOG WHEN USER TRIES TO NAVIGATE TO OTHER ACTIVITY BY BACK BTTN WHEN LOGGED OUT
// For each new individual activity
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
//EDITED VERSION TO GET START TIME FOR EACH USER INTERACTION WITH THE ACTIVITY
startTime=System.currentTimeMillis();
Log.i("RootActivity:onCreate(Bundle savedInstanceState)","******startTime=******"+startTime);
//END OF EDITED VERSION TO GET START TIME FOR EACH USER INTERACTION WITH THE ACTIVITY
//EDITED VERSION TO GET LOGOUT DIALOG WHEN USER TRIES TO NAVIGATE TO OTHER ACTIVITY WHEN LOGGED OUT
if (checkTimeout==true){
Log.i("RootActivity:onCreate(Bundle savedInstanceState)","******Timeout=true******");
RootActivity.alertDialog(this,getCustomIntent(PropertyActivity.class)).create().show();
checkTimeout = false;
}return;
//END OF EDITED VERSION TO GET LOGOUT DIALOG WHEN USER TRIES TO NAVIGATE TO OTHER ACTIVITY WHEN LOGGED OUT
}
1 ответ
Переместите код диалога в метод onResume(), в это время активность видна.