我有一个要求用户输入个人识别码的密码,然后该密码会发出网络请求以验证其登录名。如果在此身份验证过程中,用户单击“最近的应用程序” /“概述”按钮,等待一段时间,然后返回到应用程序,则尽管请求确实完成,但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.
}
答案 0 :(得分:0)
网络请求完成后,设置一个sharedPreference来表明它已完成。例如:
getSharedPreferences(
"mypref", Context.MODE_PRIVATE).edit().putBoolean("completed",true).apply();
并在onResume中检查此首选项是否为true。如果是真的,则相应地更新用户界面。