判斷某個Activity是否在前臺顯示

public class ActivityForeground {


    /**
     * 判斷某個界面是否在前臺
     *
     * @param activity 要判斷的Activity
     * @return 是否在前臺顯示
     */
    public static boolean isForeground(Activity activity) {
        return isForeground(activity, activity.getClass().getName());
    }

    /**
     * 判斷某個界面是否在前臺
     *
     * @param context   Context
     * @param className 界面的類名
     * @return 是否在前臺顯示
     */
    public static boolean isForeground(Context context, String className) {
        if (context == null || TextUtils.isEmpty(className))
            return false;
        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningTaskInfo> list = am.getRunningTasks(1);
        if (list != null && list.size() > 0) {
            ComponentName cpn = list.get(0).topActivity;
            if (className.equals(cpn.getClassName()))
                return true;
        }
        return false;
    }

}

通過ActivityManager獲取所有正在運行的activity列表集合,遍歷集合,查看對應(yīng)第一個元素的類名是否和要判斷的activity的名稱一樣

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,094評論 25 709
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,014評論 2 59
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • 時間 像天津九月的風(fēng) 一下子就吹了三個四季 而我還傻傻地站在原地 高新區(qū)的地鐵下一站該通往哪里 校門口的公交到底幾...
    山外有涼風(fēng)閱讀 338評論 0 3
  • 很多道理自己聽過,卻記不住,記住了用不好,不是因為記性不好,只是因為沒親身經(jīng)歷。所以一個筋斗十萬八千里,還是要一步...
    黃粱一夢信口雌黃閱讀 238評論 0 0

友情鏈接更多精彩內(nèi)容