松岛飒全集,兽人之墨菊,freeskyf
本文实例为大家分享了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 studio开发小型对话机器人app(实例代码)
Android通过Java sdk的方式接入OpenCv的方法
Android 通过cmake的方式接入opencv的方法步骤
Android Studio finish()方法的使用与解决app点击“返回”(直接退出)
Android 进度条 ProgressBar的实现代码(隐藏、出现、加载进度)
网友评论