1. 定义程序全局静态标志:needToRefreshSomething....程序启动初始化为true
2. 在TabActivity中定义全局变量String currentTabId,onCreate方法中初始化为第一个tab的tagId(即:newTabSpec中指定的tag)
3. 在TabActivity中监听tab改变事件,修改needToRefreshSomething状态(即:离开某个tab,修改成下次浏览tab需要刷新)。onTabChanged方法结束前更新currentTab全局变量
4. 在Tab对应的activity中onResume方法中,根据needToRefreshSomething状态做刷新操作。
public class MainActivity extends BaseTabActivity implements OnTabChangeListener {
private static final String TAB_ID_HOME = "home";
private static final String TAB_ID_MY_MUSIC = "my music";
private static final String TAB_ID_INVITES = "invites";
private String currentTabId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getTabHost().setOnTabChangedListener(this);
...............
}
@Override
public void onTabChanged(String tabId) {
if (currentTabId.equals(TAB_ID_MY_MUSIC)) {
StationManager.getInstance().setNeedToRefreshAll(true);
} else if (currentTabId.equals(TAB_ID_INVITES)) {
// TODO:
}
currentTabId = tabId;
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
if( StationManager.getInstance().getNeedToRefreshAll()){
//刷新操作
}
super.onResume();
}
}