【发布时间】:2016-02-03 11:44:38
【问题描述】:
在 Android 中,如果您想清除当前的 Activity 堆栈并启动新的 Activity(例如,退出应用并在 Activity 中启动日志),似乎有两种方法。
如果您的目标 API 级别高于 16,那么两者相比有什么优势吗?
1) 完成亲和力
从 Activity 调用 finishAffinity()。
Activity.finishAffinity
2) 意图标志
Intent intent = new Intent(this, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
finishAffinity() 方法适用于 >= API 16。
Intent 标志方法适用于 >= API 11。
需要明确的是,为了清除当前的Activity 堆栈,这两种方法似乎也同样有效。我的问题是,人们经历过这两种方法是否存在问题,因此,有什么理由选择其中一种吗?
【问题讨论】:
标签: android android-intent android-activity logout flags