android tab传递数据,Android里TabHost切换tab选项卡时对应activity数据更新的问题

在Android开发中,当使用TabHost时,点击不同tab切换activity,activity不会每次都重新创建。为确保每次点击tab都能刷新activity,可以重写onResume()方法或者设置Intent.FLAG_ACTIVITY_CLEAR_TOP标志。在onResume()内进行刷新操作可能导致在activity2结束时重新触发onResume(),而添加FLAG_ACTIVITY_CLEAR_TOP可以避免这个问题,确保切换回之前tab时,activity会被重新创建并刷新。

在android中,使用tabHost的时候,如果tab被点击,该tab所对应的activity被加载了,从别的tab切换回来的时候,activity不会再次被创建了(onCreate),所以要想每次点击tab都刷新activity,有如下方法:

方法1 把要刷新的对象添加到onresume

1 @Override

2 public void onResume() {

3 super.onResume();

4 //代码

5 }

每次切换tab,该activity会调用次方法onresume 方法

但是这个方法有个问题,如果在此方法中加载下个activity,在这里,我们起名叫activity2。当activity2结束时,调用finish()方法,此时tab所对应的那个activity仍然会执行onResume()方法,重新刷新数据。

如果想避免这种情况,使用方法2:

tabHost.addTab(tabHost.newTabSpec(0 +

"").setIndicator(tv1).setContent(new Intent(this,

NewsActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));

tabHost.addTab(tabHost.newTabSpec(1 +

"").setIndicator(tv2).setContent(new Intent(this,

VideoActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));

使用

.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)就可以了。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值