Android返回上层刷新页面
在Android开发中,同学们肯定有这种需求:在当前activity中修改并提交了数据之后,需要返回到上一个activity,但是我们会发现刚才修改的数据没有发生变化,需要手动去刷新当前页面才会重新加载数据,这是个很不好的用户体验。
这个时候肯定有同学说了,那我们返回上一个页面的时候不使用finish()销毁当前页面
,而是直接使用startActivity()跳转到上个activity
,这样页面就会重新加载了。
这确实是个很不错的办法,但是经过测试之后你会发现,修改成功后你确实已经finish了修改页面,那么当前activity的上一层activity
,就变成了之前【用户信息】activity
,这下子再按返回键就尴尬了。
那么如何可以实现既能数刷新页面,又能满足用户体验呢?
首先在第一个页面实现一个onActivityResult()
方法,这个方法在页面初始化之前执行,可以接收来自上个页面的requestCode
和resultCode
,我们可以通过resultCode
来判断页面是否执行重新加载操作。
/**
* 页面跳转回调
* @param requestCode
* @param resultCode
* @param data
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == GET_CODE) {
//GET_CODE是自定义的页面跳转识别码
initView();
}
}
如果是点击返回键,那么resultCode
的值为默认,也就是0
.我们可以将GET_CODE设置为1
,如果是返回键返回就不执行页面重载。之后在修改页面使用setResult()
方法,传递一个resultCode().
if (code == 200) {
//修改成功
setResult(1,(new Intent()));
finish();
}
接下来是返回键返回的resultCode
接下来是保存成功返回的resultCode
这样就可以通过resultCode
来判断是否需要重新加载页面。