栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

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

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

判断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 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; 
  } 


方法二:

 
  public boolean isApplicationBroughtToBackground(Context context) { 
    ActivityManager am = (ActivityManager) context 
     .getSystemService(Context.ACTIVITY_SERVICE); 
    List 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; 
  } 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/164312.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号