如何在 API 21+ 上检查 activity 是否是 activity 堆栈中的最后一个

How to check if an activity is the last one in the activity stack on API 21+

我的问题与 this one 相同,但它是旧的并且已接受的答案使用折旧的权限和值。我想要一个在 API 21 以上有效的更新答案。

我需要在某些情况下覆盖主屏幕 return 按钮操作。 (应用程序被用户从堆栈中删除,但是小部件启动了一个 activity,现在需要忘记向后导航,所以如果是这样的话,backpress 应该启动新的 activity 意图,但不能只检查小部件是否打开 activity,因为如果用户不手动关闭应用程序,它会按预期工作。)

如果你想检查当前的 activity 是否是最后一个,你可以在你的 activity 中使用 isTaskRoot() 来检查这是否是最后一个 activity。

在官方 link 上查看更多信息: https://developer.android.com/reference/android/app/Activity#isTaskRoot()