Android 在一个Activity中刷新另外一个Activity的UI

本文介绍如何在Android应用程序中,从一个Activity(Activity_B)动态更新另一个Activity(Activity_A)的用户界面。主要方法是通过在Activity_A中声明静态变量,并在需要时调用其刷新方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 通过声明要刷新的activity(Activity_A)为静态变量,然后在一个activity(Activity_B)中直接调用Activity_A中的刷新方法


        在Activity_A中声明静态变量:

			public static Activity_A instance = null;
	Activity_B 中直接调用Activity_A中的刷新方法:
			Activity_A.instance.initRefresh();//initRefresh()是Activity_A中定义的方法
2.使用广播

一.Activity_B中发送广播 
Intent intent = new Intent();
intent.setAction("action.refreshActivity_A");
sendBroadcast(intent);
二.Activity_A中接收广播 

private BroadcastReceiver mRefreshBroadcastReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (action.equals("action.refreshActivity_A"))
        {
            initRefresh();
        }
    }
};

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("action.refreshActivity_A");
registerReceiver(mRefreshBroadcastReceiver, intentFilter);

@Override
protected void onDestroy() {
    super.onDestroy();
    unregisterReceiver(mRefreshBroadcastReceiver);
}

三.使用Handler(重写application来在两个activity之间共享Handler
		一会再写...
四.使用StartActivityForResult
ActivityA中:
Intent intent  = new Intent();
intent.setClass(ActivityA.this,ActivityB.class);
Bundle bundle = new Bundle();
bundle.putString("title", title);//这些根据需求传对应的值,不传也可以。
bundle.putString("url", url);//
intent.putExtras(bundle);
startActivityForResult(intent, 1005);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == 3) {
        if (requestCode == 1005) {
            if(data.getStringExtra("dataB") != null ) {
                String data = data.getStringExtra("dataB");
		Log.i("dataB", data);
		//根据返回数据执行相关操作
		//进行webView刷新
webView.reload();
} } }}

ActivityB中:
Intent intent = new Intent();
intent.putExtra("dataB", datab); //将值回传
setResult(3, intent);
finish(); //结束当前的activity生命周期





详细的一会再写...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值