如何查看在Android上运行的应用?

sjo*_*jor 65 java browser android if-statement

我是Android开发人员,我想if在我的应用程序中编写一个语句.在此声明中,我想检查默认浏览器(Android OS中的浏览器)是否正在运行.我该如何以编程方式执行此操作?

dha*_*val 136

添加以下Helper类:

public class Helper {

        public static boolean isAppRunning(final Context context, final String packageName) {
            final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
            final List<ActivityManager.RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
            if (procInfos != null)
            {
                for (final ActivityManager.RunningAppProcessInfo processInfo : procInfos) {
                    if (processInfo.processName.equals(packageName)) {
                        return true;
                    }
                }
            }
            return false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在,您可以从以下代码中查看您所需的应用程序是否正在运行:

if (Helper.isAppRunning(YourActivity.this, "com.your.desired.app")) {
    // App is running
} else {
    // App is not running
}
Run Code Online (Sandbox Code Playgroud)

  • Thx,但正如我每次看到com.android.browser一样.当它是前景时,通常它位于列表的第3或第4位置,否则它仍然在列表中.所以这句话每次都是真的.我怎么解决这个问题?只有当最近的进程是浏览器时,它必须写"浏览器正在运行". (2认同)

Raj*_*kla 7

isInBackground 是应用程序的状态

ActivityManager.RunningAppProcessInfo myProcess = new ActivityManager.RunningAppProcessInfo();
ActivityManager.getMyMemoryState(myProcess);
Boolean isInBackground = myProcess.importance != ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND;
Run Code Online (Sandbox Code Playgroud)