登录
  • 欢迎访问 Sharezer Blog

Android 判断某个应用是否处于前台显示状态

Adb sharezer 2782次浏览 已收录 0个评论
/**
 * 返回当前的应用是否处于前台显示状态
 *
 * @param packageName
 * @return
 */
public boolean isTopActivity(String packageName) {
    String result = execRootCmd("dumpsys activity | grep \"mResumedActivity\"");
    int start = result.indexOf("u0") + 3;
    int end = result.indexOf("/");
    Log.d(TAG, "s: " + start + "end: " + end);
    if (start < 0 || end < 0 || end <= start)
        return false;

    String top = result.substring(start, end);
    Log.e(TAG, "top activity:" + top);
    if (top.contentEquals(packageName))
        return true;
    return false;
}

execRootCmd我这里是默认执行了su,而dumpsys是不需要使用到su的,所以没有root权限的童鞋,直接用Runtime.getRuntime().exec(cmd)

exeRootCmd可以见Android 执行su命令


Sharezer , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Android 判断某个应用是否处于前台显示状态
喜欢 (3)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址