当它正在等待网络请求并且活动暂停时,如何显示正确的 UI?



我有一个要求用户输入密码,然后执行网络请求以验证他们的登录。如果在此身份验证期间,用户单击"最近的应用程序"/"概述"按钮,等待一段时间,然后返回到应用程序,则尽管请求已完成,但 UI 不会更新。

我相信问题发生在onPause((中,似乎通过暂停活动可以保存当前屏幕,并且当恢复时,将显示此屏幕而不是显示下一个屏幕。

有什么方法可以在身份验证后或恢复时更新?感谢任何帮助,谢谢!

@Override
public void onResume() {
super.onResume();
Utils.currentActivity = this;
boolean wakingUp = getIntent().getBooleanExtra(Utils.MY_EXTRA_WAKING_UP, false);
if (wakingUp) {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
}
My_Screen screen = getScreen();
if(screen != null)
screen.onDisplay();         // performs some user defined 
// function, currently does 
// nothing .
String notificationId = getIntent().getStringExtra(Utils.MY_EXTRA_NOTIFICATION_ID);
if (notificationId != null) {
getIntent().removeExtra(Utils.MY_EXTRA_NOTIFICATION_ID);
Utils.callMethod(Utils.NOTIFICATIONS_SERVICE, "dispatchNotificationTriggeredEvent", notificationId);
}
}
@Override
public void onPause() {
super.onPause();
Utils.callMethod(Utils.APPLICATION_SERVICE, "onActivityPaused", this);
My_Screen screen = getScreen();
if (screen != null)
screen.onHide();            // Performs user defined function
// currently does nothing.
}

网络请求完成后,设置共享首选项以指示它已完成。 例如:

getSharedPreferences(
"mypref", Context.MODE_PRIVATE).edit().putBoolean("completed",true).apply();

并在恢复中检查此首选项是否为真。如果为 true,则相应地更新 UI。

最新更新