我不能为我的生活找出如何在按下后退按钮后刷新活动。我目前有活动A触发意图转到B,而在行动B,如果你按回我想要回到行动A但让它刷新自己。我可以使用此意图来刷新当前的活动:
Intent refresh = new Intent(this, Favorites.class);
startActivity(refresh);
this.finish();
但我无法弄清楚如何正确使用onResume()函数在回到它之后刷新我的行为A.
答案 0 :(得分:10)
如果您从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
。
答案 1 :(得分:3)
使用startActivityForResult(intent, requestCode);
从Activity B
Activity A
然后在Activity A
覆盖onActivityResult(int requestCode, int resultCode, Intent data)
您可以刷新Activity A
答案 2 :(得分:1)
您需要在onResume()
方法中放置更新活动UI的代码。也许您应该发布更多代码或解释您究竟要更新的内容。