我一生都无法弄清楚按下后退按钮后如何刷新活动。我目前有一个活动 A,它触发了转到 B 的意图,而在行为 B 上,如果你按回,我想返回到行为 A,但让它自行刷新。我可以使用这个意图来刷新当前的活动:
Intent refresh = new Intent(this, Favorites.class);
startActivity(refresh);
this.finish();
但是我不知道如何正确使用 onResume() 函数来刷新我的行为 A 后回到它。
我一生都无法弄清楚按下后退按钮后如何刷新活动。我目前有一个活动 A,它触发了转到 B 的意图,而在行为 B 上,如果你按回,我想返回到行为 A,但让它自行刷新。我可以使用这个意图来刷新当前的活动:
Intent refresh = new Intent(this, Favorites.class);
startActivity(refresh);
this.finish();
但是我不知道如何正确使用 onResume() 函数来刷新我的行为 A 后回到它。
如果您需要ActivityA
从 回来时的特殊行为ActivityB
,您应该使用startActivityForResult(Intent intent, int requestCode)
而不是startActivity(Intent intent)
:
startActivityForResult(new Intent(this, ActivityB.class), REQUEST_CODE);
这样,您将能够通过重载检测ActivityB
' 的终止:ActivityA
onActivityResult(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
。
用于从startActivityForResult(intent, requestCode);
_Activity B
Activity A
然后在Activity A
覆盖onActivityResult(int requestCode, int resultCode, Intent data)
在那里你可以刷新你的Activity A
您需要将更新 Activity 的 UI 的代码放在onResume()
方法中。也许您应该发布更多代码或解释您到底要更新什么。