Android判断程序是前台还是后台

  1. /**
    * 程序是否在前台运行
    *
    * @return
    */
    public boolean isAppOnForeground(){
       // Returns a list of application processes that are running on the
       // device
       List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
       if(appProcesses ==null)
          returnfalse;
       for(RunningAppProcessInfo appProcess : appProcesses){
          // The name of the process that this object is associated with.
          if(appProcess.processName.equals(packageName)
             /**
             * 可以根据importance的不同来判断前台或后台 RunningAppProcessInfo
             * 里面的常量IMOPORTANCE就是上面所说的前台后台
             * ,其实IMOPORTANCE是表示这个app进程的重要性,因为系统回收时候,会
             * public static final int IMPORTANCE_EMPTY = 500//空进程
             * public static final intIMPORTANCE_FOREGROUND = 100//在屏幕最前端、可获取到焦点
             * 可理解为Activity生命周期的OnResume();
             * public static final int IMPORTANCE_SERVICE = 300//在服务中
             * public static final int IMPORTANCE_VISIBLE = 200//在屏幕前端、获取不到焦点可理解为
             * Activity生命周期的OnStart()
             */
           && appProcess.importance ==RunningAppProcessInfo.IMPORTANCE_FOREGROUND){
            return true;
         }
      }
      return false;
    }
    我的方法是放在BaseActivity,在onStart和onStop里面分别再判断一次。根据返回值来判断是前台还是后台。

     

 

转载于:https://www.cnblogs.com/fruitbolgs/p/4795973.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值