欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2024-03-06 18:40:44
本文实例为大家分享了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;
 }

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