gpt4 book ai didi

java - 当应用程序来自后台时询问 PIN

转载 作者:行者123 更新时间:2023-12-02 12:27:30 28 4
gpt4 key购买 nike

我正在尝试实现一项功能,每次打开应用程序或来自后台时,都会要求用户输入 PIN。经过搜索,我发现a solution .

我有一个基本的Activity类,其余部分都是从中继承的。它称为ParentActivity。我在 ParentActivity 中实现了 Foreground.Listener 并覆盖 onBecameForeground,并在运行时打开 PINActivity。类似下面的内容

public abstract class ParentActivity extends AppCompatActivity implements Foreground.Listener {

...

@Override
public void onBecameForeground() {
openSecurityActivity();
}

...

}

然后在所有子类中重写这个方法来调用super

@Override
public void onBecameForeground() {
super.onBecameForeground();
}

问题

现在的问题是,每当应用程序进入前台时,此方法都会运行多次,因为有子类覆盖此方法,即使未创建子 Activity 也是如此。我尝试在 openSecurityActivity() 内部进行检查,如下所示,

synchronized protected void openSecurityActivity() {
if(securityPinRequired) {
if(!isSecurityActivityOpened) {
isSecurityActivityOpened = true;

Intent intent = new Intent(this, FingerprintAndSecurityPINActivity.class);
intent.putExtra(Constants.ASK_SECURITY_PIN, true);
intent.putExtra("isForBackgroundVerification", true);
startActivity(intent);
}
}

}

但它仍然打开两次。我无法弄清楚问题所在。我在这里遗漏了任何基本的 OOP 概念吗?

感谢任何帮助。谢谢。

最佳答案

将 android:launchMode="singleInstance"添加到 AndroidManifest.xml 文件

关于java - 当应用程序来自后台时询问 PIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45431333/

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