1.onResume()方法
activity或fragment页面中(简称原页面)启动新的页面(简称新页面),新页面返回时需要原页面刷新数据,观察他们的生命周期可以看出,启动新的页面,原页面会依次调用onPause(), and onStop()方法,当新的页面关闭返回时,原页面会调用onStart(),onResume(),因此把加载数据放到onResume()方法中即可
@Override
public void onResume() {
super.onResume();
getData();//加载数据
}
2.startActivityForResult方法
三种情况
a.用新页面关闭的默认码,原页面就刷新
设置返回码
启动新页面
startActivityForResult(new Intent(context,NewActivity.class).putExtras(bundle), requestCode);
//携带bundle启动新页面
新页面关闭时会自动调用Activity.RESULT_CANCELED,不需要在新页面写结果码代码
原页面刷新数据:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if (requestCode == this.requestCode && resultCode == Activity.RESULT_CANCELED) {
//刷新数据
}
}
b.改写新页面关闭时的默认码,原页面刷新
设置结果码为RESULT_OK
覆写finish( )方法
@Override
public void finish() {
setResult(RESULT_OK);
super.finish();
}
原页面刷新数据:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if (requestCode == this.requestCode && resultCode == Activity.RESULT_OK) {
//加载数据
}
}
c.新页面有特定操作,比如提交数据,原页面才刷新数据
可以在新页面设置requestCode,这也是最通用的方法,不 累述
3.其他方法
接口回调,广播,观察者模式