8

我一生都无法弄清楚按下后退按钮后如何刷新活动。我目前有一个活动 A,它触发了转到 B 的意图,而在行为 B 上,如果你按回,我想返回到行为 A,但让它自行刷新。我可以使用这个意图来刷新当前的活动:

Intent refresh = new Intent(this, Favorites.class);
    startActivity(refresh);
    this.finish();

但是我不知道如何正确使用 onResume() 函数来刷新我的行为 A 后回到它。

4

3 回答 3

13

如果您需要ActivityA从 回来时的特殊行为ActivityB,您应该使用startActivityForResult(Intent intent, int requestCode)而不是startActivity(Intent intent)

 startActivityForResult(new Intent(this, ActivityB.class), REQUEST_CODE); 

这样,您将能够通过重载检测ActivityB' 的终止:ActivityAonActivityResult(int requestCode, int resultCode, Intent intent)

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);

    if (requestCode == REQUEST_CODE) {
        doRefresh(); // your "refresh" code
    }
}

即使您ActivityB通过按下后退按钮终止,这也有效。在这种情况下,默认情况下resultCode将是RESULT_CANCELLED

于 2011-07-27T20:24:53.390 回答
3

用于从startActivityForResult(intent, requestCode); _Activity BActivity A

然后在Activity A覆盖onActivityResult(int requestCode, int resultCode, Intent data)

在那里你可以刷新你的Activity A

于 2011-07-27T20:22:30.257 回答
1

您需要将更新 Activity 的 UI 的代码放在onResume()方法中。也许您应该发布更多代码或解释您到底要更新什么。

于 2011-07-27T20:20:15.070 回答