Android判断当前App是在前台还是在后台
本文实例为大家分享了Android判断当前App状态的具体实现代码,供大家参考,具体内容如下
第一种:
/**
*判断当前应用程序处于前台还是后台
*
* @param context
* @return
*/
public static boolean isApplicationBroughtToBackground(final Context context) {
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasks = am.getRunningTasks(1);
if (!tasks.isEmpty()) {
ComponentName topActivity = tasks.get(0).topActivity;
if (!topActivity.getPackageName().equals(context.getPackageName())) {
return true;
}
}
return false;
}
上面这段代码是需要一个权限的:
< uses-permission Android:name=”android.permission.GET_TASKS” />
第二种:
下面这段代码是我最新发现,无需权限,妥妥滴:
不过我稍微做了调整,后台分为:service后台和activity后台,这里认为不是前台的都认为后台。
•service运行在后台,appProcess.importance = IMPORTANCE_SERVICE,
•没有service运行的后台,
public static boolean isBackground(Context context) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
if (appProcess.processName.equals(context.getPackageName())) {
if (appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
System.out.print(String.format("Foreground App:", appProcess.processName));
return false;
}else{
System.out.print("Background App:"+appProcess.processName);
return true;
}
}
}
return false;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Android编程之Application设置全局变量及传值用法实例分析
这篇文章主要介绍了Android编程之Application设置全局变量及传值用法,结合实例形式较为详细的分析了全局变量及传值的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下2015-12-12
Android开发中Activity的生命周期及加载模式详解
这篇文章主要介绍了Android开发中Activity的生命周期及加载模式详解的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下2016-05-05
Android startActivityForResult()代替方案示例
这篇文章主要为大家介绍了Android startActivityForResult()代替方案示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-08-08
Android开发中Activity之间切换出现短暂黑屏的解决方法
这篇文章主要介绍了Android开发中Activity之间切换出现短暂黑屏的解决方法,较为详细的分析了Android中Activity之间切换出现短暂黑屏的原因与解决方法,需要的朋友可以参考下2016-02-02
Android studio报错:The emulator process for AVD (xxx) was kill
这篇文章主要介绍了Android studio报错:The emulator process for AVD (xxx) was killed,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-12-12


最新评论