使用onResume()刷新活动

Nic*_*ick 8 lifecycle android back-button onresume android-intent

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

Intent refresh = new Intent(this, Favorites.class);
    startActivity(refresh);
    this.finish();
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何正确使用onResume()函数来恢复我的行为A.

Shl*_*blu 10

如果您ActivityA在返回时需要特殊行为ActivityB,则应使用startActivityForResult(Intent intent, int requestCode)而不是startActivity(Intent intent):

 startActivityForResult(new Intent(this, ActivityB.class), REQUEST_CODE); 
Run Code Online (Sandbox Code Playgroud)

这样,您就可以通过重载来检测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
    }
}
Run Code Online (Sandbox Code Playgroud)

即使您ActivityB按后退按钮终止也可以.该resultCodeRESULT_CANCELLED默认在这种情况下.