如何检查应用程序是否在Android中打开?

如何检查应用程序是否在Android中打开?,android,Android,我看到这个问题: 但我想在安卓系统中实时获取已打开应用程序的名称(用户请参阅) 我想运行后台服务来检查。您可以使用以下功能获取正在运行的应用程序包名称: public String foregroundPackage() { ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); List<ActivityManager.RunningTaskInfo&g

我看到这个问题:

但我想在安卓系统中实时获取已打开应用程序的名称(用户请参阅)


我想运行后台服务来检查。

您可以使用以下功能获取正在运行的应用程序包名称:

public String foregroundPackage() {
        ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
        List<ActivityManager.RunningTaskInfo> runningTaskInfo = manager.getRunningTasks(1);
        ComponentName componentInfo = runningTaskInfo.get(0).topActivity;
        packageName = componentInfo.getPackageName();
        return componentInfo.getPackageName();
    }
公共字符串foregroundPackage(){
ActivityManager=(ActivityManager)getSystemService(ActivityU服务);
List runningTaskInfo=manager.getRunningTasks(1);
ComponentName componentInfo=runningTaskInfo.get(0).topActivity;
packageName=componentInfo.getPackageName();
返回componentInfo.getPackageName();
}

谢谢,但当我运行你的代码时,我在任何应用程序中都只会得到com.l.launcher。我不知道你是如何调用该函数的,但我可以向你保证它会返回最顶端的应用程序包名称。例如,我每5秒就有一个循环函数,我将你的代码放入这个循环以获得名称。只有在我的应用程序中,我得到了正确的名称(com.example.test),但在其他应用程序中,我得到了这个名称:com.l.launcher:(hmmmm,我禁用了我的l-launcher,但知道当我打开(例如)chrome时,我得到了com.android.launcher:(