成功登录后,从登录活动转到主活动。当我单击后退按钮时,我收到此警告。
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();
}