android回退页面刷新页面数据

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.其他方法
接口回调,广播,观察者模式

猜你喜欢

转载自blog.csdn.net/ShiXinXin_Harbour/article/details/112302824