gpt4 book ai didi

android - 如何知道我的应用程序是在前台还是后台,android?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:15:58 25 4
gpt4 key购买 nike

我需要检查我的应用程序是在后台还是前台运行,然后对其执行一些相关操作。

我搜索了很多,没有一个明确的解决方案。

  1. 让父 Activity 在其 onPause() 和 onResume() 方法中保留一些变量以相应地更新它们。当您创建任何新 Activity 时,将继承您的父 Activity 。虽然这是我认为完成任务的最佳解决方案,但有时如果单击电源按钮,即使应用程序在后台,也会调用 onResume()。

  2. 使用 GETTASKS 权限 - 这个解决方案也不错。但它只能用于调试目的。如果您想将您的应用放在 Google Play 商店中,则不是。

Get Running Taks

还有其他首选解决方案吗?

最佳答案

这解决了我的问题:

  private boolean isAppOnForeground(Context context,String appPackageName) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
if (appProcesses == null) {
return false;
}
final String packageName = appPackageName;
for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
if (appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND && appProcess.processName.equals(packageName)) {
// Log.e("app",appPackageName);
return true;
}
}
return false;
}

关于android - 如何知道我的应用程序是在前台还是后台,android?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26879951/

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