gpt4 book ai didi

android - 如何判断我的应用程序是否从后台恢复?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:53:29 25 4
gpt4 key购买 nike

我想在我的应用程序进入后台时锁定我的应用程序当它恢复时,我想显示我自己的锁定屏幕。锁定屏幕是我的应用程序的一个 Activity。

成功输入密码后,用户可以看到恢复的Activity否则他不能。

我该怎么做?

最佳答案

主要问题是,当您从后台启动一个Activity 时,您必须获得一个特定的行为。 onPause()onResume() 会在您每次在 Activities 之间切换时调用,而不仅仅是在您最小化应用程序时调用。要解决这个问题,您可以从 ActivityManager 获取当前正在运行的任务,并将它们的包名称与您的应用程序的包名称进行比较:

private boolean isApplicationInBackground() {
final ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
final List<RunningTaskInfo> tasks = manager.getRunningTasks(1);
if (!tasks.isEmpty()) {
final ComponentName topActivity = tasks.get(0).topActivity;
return !topActivity.getPackageName().equals(getPackageName());
}
return false;
}

现在你可以这样做了:

public boolean wasPaused = false;

@Override
public void onPause() {
super.onPause();

if(isApplicationInBackground()) {
wasPaused = true;
}
}

@Override
public void onResume() {
super.onResume();

if(wasPaused) {
lockScreen();
wasPaused = false;
}
}

就是这样!我建议您在基础 Activity 中实现此功能,所有其他 Activities 都来自该基础。

关于android - 如何判断我的应用程序是否从后台恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7952622/

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