android - 如何确定当前是否正在使用 Android 应用程序?

标签 android memory

我的应用程序在使用时会占用大量内存。我想在不使用应用程序时释放内存。

我已经实现了 Application.onTrimMemory()。但是即使我的应用程序当前正在使用中(向用户呈现一个 Activity ),也会调用此方法。如何确定我的应用程序的任何 Activity 当前是否处于 Activity 状态?

minSdkVersion="9"

最佳答案

使用这个简单的方法来检查应用程序是否在前台运行!

public boolean isAppForground() {

        ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        List<RunningAppProcessInfo> l = mActivityManager.getRunningAppProcesses();
        Iterator<RunningAppProcessInfo> i = l.iterator();
        while (i.hasNext()) {
            RunningAppProcessInfo info = i.next();

            if (info.uid == getApplicationInfo().uid && info.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
                return true;
            }
        }
        return false;
    }

关于android - 如何确定当前是否正在使用 Android 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21574125/

相关文章:

PHP 对象创建和内存使用

Memory Hierarchy - 为什么寄存器很贵?

Python:字符串计数内存错误

android - 是否可以支持旧 API 级别的 setScrollY() (ScrollView API 14) 之类的函数?

表格行动画的Android过渡动画

android - Google Analytics(分析)Android SDK广告系列评估特殊内容

android - 检测应用程序何时保持屏幕开启

c - 释放链表中的节点

iphone - 调用者此时不拥有的对象的引用计数的错误递减

android - ScrollView 不滚动