如何避免活动记录的重复完成请求



成功登录后,从登录活动转到主活动。当我单击后退按钮时,我收到此警告。

W/ActivityManager: Duplicate finish request for ActivityRecord

当我再次启动应用程序时,登录活动再次被调用。

登录成功后我打电话

Intent intent = new Intent(this, HomeActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | IntentCompat.FLAG_ACTIVITY_CLEAR_TASK);
    startActivity(intent);
    finish();

问题仅在发布版本中。

如果这与后按无关,也许您有多个来自不同地方的 finish() 调用。只需检查活动是否完成,如果是,则跳过第二个呼叫。

if (!YourActivity.this.isFinishing()) {
    finish(); 
}

你的代码会导致调用 onDestroy() 方法两次。

如果后退按钮仅触发完成,请将onBackPressed()更改为此按钮,删除super.onBackPressed();

@Override
public void onBackPressed() {
    finish();
}

最新更新