单击后退按钮时,活动组不刷新活动

| 我的应用程序上有一个Tabhost,我正在使用一个“活动”组来处理内部的3个活动。 例: 活动组句柄 A-> B-> C 当我开始此活动时,我正在使用标志Intent.FLAG_ACTIVITY_CLEAR_TOP。 我的问题是,当用户从A-> B-> C转到后按后退按钮时,我的B活动出现了,但它没有恢复,重新加载或刷新。它具有与以前相同的状态。 例如,如果用户再次转到C,则C被刷新,但是从C返回时……B未被刷新。 在B上,我具有Implementend方法,例如onResume,onStart,onReestart并对其进行调试,因此主线程永远不会进入那里... 我需要刷新B,因为C可以进行更改以更改B上显示的内容。 我用谷歌搜索了3天,但找不到解决方案。
已邀请:
我也有这个问题。 我正在根据此博客文章使用ActivityGroup代码。 当我按下“后退”按钮时,先前的“视图”可以很好地加载,但是与其关联的活动不会触发“ 0”。 我正在使用扩展活动,将其覆盖和覆盖public0ѭ。 我找到了此博客文章,因此尝试将视图投射为我的扩展活动,并将其命名为“ 0”。 答对了。 编辑...。这里有更多详细信息...
public class YFIMenuListActivity extends ListActivity {
....
  @Override
  public void onResume() {
    super.onResume();
  }
....
}
onResume()
通常是受保护的,但是我将其覆盖并将其公开,以便我的ActivityGroup可以调用它。 我在此活动组中只有扩展列表活动(我只是在玩耍)。如果您有不同的活动,则每个活动都必须覆盖
onResume()
,我想您必须先查看从
v.getContext()
返回的上下文类型,然后再进行铸造和调用。 我的ActivityGroup看起来像这样:
public class BrowseGroup extends ActivityGroup {
.....
  @Override
  protected void onResume() {
    super.onResume();
    // call current activity\'s onResume()
    View v = history.get(history.size()-1);
    YFIMenuListActivity currentActivity = (YFIMenuListActivity)v.getContext();
    currentActivity.onResume();
  }
....
}
我已经设法实现了cousin_itt方法的扩展版本。 在活动组中使用的两个活动中,我都将onResume从更改为:
protected void onResume()
public void onResume()
然后,我在ActivityGroup中编写了以下onResume函数,以手动触发onResumes:
@Override
protected void onResume() { 
super.onResume();
View v = history.get(history.size()-1);

MainPeopleView currentActivity = null;   

try {
    currentActivity = (MainPeopleView)v.getContext();
    currentActivity.onResume();
}
catch ( ClassCastException e ) {
    Log.e(TAG, e.toString());
}

ProfileView otherActivity = null;

try {
otherActivity = (ProfileView)v.getContext();
otherActivity.onResume();
}
catch ( ClassCastException e ) {
    Log.e(TAG, e.toString());
}
}
我不得不说,这就像我写过的最糟糕的android hack一样。我再也不会使用activitygroup。
((ReportActivity)getLocalActivityManager().getActivity(\"ReportActivity\")).onResume();
ReportActivity是您要支持的活动的名称 ps:v.getContext(); 只返回ActivityGroup,它不能在onResume上调用子Activity
我发现
onFocusChanged(boolean hasFocus)
非常适合ѭ13situations之类的情况。即使
onResume()
也不会触发。我将其用于一些ѭ15和and13 apps的应用程序。在这里,您可以强制刷新并确保在您的
Activity
重新获得焦点时始终将其触发。
希望您已使用“ 0”方法编写了刷新数据代码。

要回复问题请先登录注册