使用onResume()刷新活动

时间:2011-07-27 20:15:52

标签: android android-intent lifecycle back-button onresume

我不能为我的生活找出如何在按下后退按钮后刷新活动。我目前有活动A触发意图转到B,而在行动B,如果你按回我想要回到行动A但让它刷新自己。我可以使用此意图来刷新当前的活动:

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

但我无法弄清楚如何正确使用onResume()函数在回到它之后刷新我的行为A.

3 个答案:

答案 0 :(得分:10)

如果您从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

答案 1 :(得分:3)

使用startActivityForResult(intent, requestCode);  从Activity B

开始Activity A

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

您可以刷新Activity A

答案 2 :(得分:1)

您需要在onResume()方法中放置更新活动UI的代码。也许您应该发布更多代码或解释您究竟要更新的内容。