Android判断当前App是在前台还是在后台
程序员文章站
2024-03-07 17:12:33
本文实例为大家分享了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; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。