Android判断应用是否在前台或后台

来源:互联网 发布:数据库创建索引 编辑:程序博客网 时间:2024/06/12 07:17

public static final int IMPORTANCE_BACKGROUND = 400//后台

public

可以根据importance的不同来判断前台或后台
RunningAppProcessInfo 里面的常量IMOPORTANCE就是上面所说的前台后台,其实IMOPORTANCE是表示这个app进程的重要性,因为系统回收时候,会 static final int IMPORTANCE_EMPTY = 500//空进程
public static final int IMPORTANCE_FOREGROUND = 100//在屏幕最前端、可获取到焦点 可理解为Activity生命周期的OnResume();
public static final int IMPORTANCE_SERVICE = 300//在服务中
public static final int IMPORTANCE_VISIBLE = 200//在屏幕前端、获取不到焦点可理解为Activity生命周期的OnStart();

<span style="margin: 0px; padding: 0px; border: 0px currentColor; border-image: none; color: rgb(0, 153, 0); line-height: 1.4em; vertical-align: baseline;"></span><pre class="java" name="code">private boolean isBackgroundRunning() {String processName = "match.android.activity"; ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);if (activityManager == null) return false;// get running application processesList processList = activityManager.getRunningAppProcesses();for (ActivityManager.RunningAppProcessInfo process : processList) {if (process.processName.startsWith(processName)) {boolean isBackground = process.importance != IMPORTANCE_FOREGROUND && process.importance != IMPORTANCE_VISIBLE;boolean isLockedState = keyguardManager.inKeyguardRestrictedInputMode();if (isBackground || isLockedState) return true;else return false;}}return false;}


0 0