欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

判断Android程序是否在前台运行的两种方法

时间:2021-04-13 09:15:10|栏目:Android代码|点击:
@Override 
protected void onStop() { 
  if (!isAppOnForeground()) { 
    Debug.i("dwy", "enter background"); 
    mIsBackground = true; 
  } else { 
    Debug.i("dwy", "foreground"); 
    mIsBackground = false; 
  } 

Judge is App in background when onStop() get called.

public boolean isAppOnForeground() { 
    // Returns a list of application processes that are running on the 
    // device 
 
    ActivityManager activityManager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE); 
    String packageName = getApplicationContext().getPackageName(); 
 
    List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager 
        .getRunningAppProcesses(); 
    if (appProcesses == null) 
      return false; 
 
    for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) { 
      // The name of the process that this object is associated with. 
      if (appProcess.processName.equals(packageName) 
          && appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) { 
        return true; 
      } 
    } 
    return false; 
  } 


方法二:

/** 
  * 需要权限:android.permission.GET_TASKS 
  * 
  * @param context 
  * @return 
  */ 
  public boolean isApplicationBroughtToBackground(Context context) { 
    ActivityManager am = (ActivityManager) context 
            .getSystemService(Context.ACTIVITY_SERVICE); 
    List<RunningTaskInfo> tasks = am.getRunningTasks(1); 
    if (tasks != null && !tasks.isEmpty()) { 
      ComponentName topActivity = tasks.get(0).topActivity; 
      Debug.i(TAG, "topActivity:" + topActivity.flattenToString()); 
      Debug.f(TAG, "topActivity:" + topActivity.flattenToString()); 
      if (!topActivity.getPackageName().equals(context.getPackageName())) { 
        return true; 
      } 
    } 
    return false; 
  } 

上一篇:android仿即刻点赞文字部分的自定义View的示例代码

栏    目:Android代码

下一篇:Android监听Home键和Back键的区别介绍

本文标题:判断Android程序是否在前台运行的两种方法

本文地址:http://www.codeinn.net/misctech/100535.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有