【已解决】 登录,在fragment页面打开登录activity,登陆成功以后关闭登录页并刷新fragment,求指教其他思路
结构是这样的,上面是NavHostFragment,下面是BottomNavigationView,在其中一个fragment页面有个登录入口,点击登录以后,弹出登录activity页面。登陆成功以后我用SharedPreferences将token保存下来,保存以后关闭登录页面,回到原来的fragment,本意是想在onResume时判断存储的token是不是为空来判断是否登录成功然后刷新页面。
// 判断是否登录
private void isLogin() {
String token = mCacheUtil.getValue(Constants.TOKEN, String.class);
mIsLogin = token != null;
}
@Override
public void onResume() {
super.onResume();
isLogin();
if (mIsLogin) {
// 重新初始化数据
initData();
// 已登录
if (mIsLogin) {
// 判断本地是否存储用户信息
User.DataBean.UserBean user = mCacheUtil.getValue(Constants.USER, User.DataBean.UserBean.class);
if (user == null) {
String token = mCacheUtil.getValue(Constants.TOKEN, String.class);
mUserPresenter.getUserInfo(token);
} else {
setUserInfo(user);
}
}
}
}
可以通过一些消息总线库,如 EventBus,在 Login 后,发送登陆成功消息,由 Fragment 接收此消息,进行处理。
感觉可以在登录的activity finish之前调用一下刷新的方法?