当前位置: 移动技术网 > IT编程>移动开发>Android > Android判断当前App是在前台还是在后台

Android判断当前App是在前台还是在后台

2019年07月24日  | 移动技术网IT编程  | 我要评论

松岛飒全集,兽人之墨菊,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;
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网