gpt4 book ai didi

android - 如何启动一次 Activity 实例?

转载 作者:行者123 更新时间:2023-11-29 14:59:41 26 4
gpt4 key购买 nike

我有一个场景。我正在尝试使用我创建的 PinActivity 锁定我的应用程序。我正在运行一个有 5 分钟计数器计时器的服务。如果用户在 5 分钟内没有在应用程序中进行任何 Activity 。我将向他展示他必须解锁并进入应用程序的 PINActivity。我正在像这样启动 PINActivity:

Intent loginIntent = new Intent(this, PINActivity.class);
loginIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(loginIntent);

因此,当用户返回应用并看到 PINActivity 时,他将解锁它并进入应用。但是,如果用户没有输入 PIN 并再次离开应用程序超过 5 分钟怎么办(注意:我的服务会在用户将应用程序带到前台时启动计数器计时器)。我不想在顶部添加同一 PINActivity 的多个实例。如何确保顶部只有一个 PINActivity

最佳答案

您应该使用 FLAG_ACTIVITY_SINGLE_TOP。如果堆栈顶部已经有一个 PINActivity 实例,这将阻止 Android 启动 PINActivity

Intent loginIntent = new Intent(this, PINActivity.class);
loginIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_SINGLE_TOP);
startActivity(loginIntent);

请不要尝试使用其他人建议的特殊启动模式,例如 singleTasksingleInstance。这对您没有帮助,而且会使问题复杂化。

您也可以在 PINActivity 的 list 条目中指定 android:launchMode="singleTop"。这与 FLAG_ACTIVITY_SINGLE_TOP 具有相同的效果。

关于android - 如何启动一次 Activity 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50000275/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com