我的应用在使用时会占用大量内存。我想在不使用应用程序时释放内存。
我已实施Application.onTrimMemory()
。但即使我的应用程序当前正在使用(向用户显示活动),也会调用此方法。如何确定我的应用的任何活动目前是否有效?
的minSdkVersion = “9”
答案 0 :(得分:1)
使用这个简单的方法检查应用程序是否在前台运行!
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;
}