如何检查特定应用程序是否在Android中运行
我正在开发一个应用程序,需要检查特定的应用程序是否正在运行。我正在使用下面的代码,但它总是使用Toast消息告诉我,正在运行的应用程序不是 正在使用的函数的代码:如何检查特定应用程序是否在Android中运行,android,Android,我正在开发一个应用程序,需要检查特定的应用程序是否正在运行。我正在使用下面的代码,但它总是使用Toast消息告诉我,正在运行的应用程序不是 正在使用的函数的代码: boolean isNamedProcessRunning(String processName){ if (processName == null) return false; ActivityManager manager = (ActivityManager) this.getSystemServi
boolean isNamedProcessRunning(String processName){
if (processName == null)
return false;
ActivityManager manager =
(ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<RunningAppProcessInfo> processes = manager.getRunningAppProcesses();
for (RunningAppProcessInfo process : processes)
{
if (processName.equals(process.processName))
{
return true;
}
}
return false;
}
通常应用程序进程名类似于包名“com.android.example”,例如“com.android.pandora”。你试过“com.whatsapp”或“com.android.whatsapp”吗
在循环中,打印所有进程,这样可以确保whatsapp进程名称是否正确。如果要检查应用程序是否正在运行,可以使用以下代码进行检查
ActivityManager.RunningAppProcessInfo myProcess = new ActivityManager.RunningAppProcessInfo();
ActivityManager.getMyMemoryState(myProcess);
Boolean isInBackground = myProcess.importance != ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND;
尝试打印所有manager.getRunningAppProcess()并检查实际名称是否存在,这非常简单。。。您可以检查您的进程名称:
如果(processName.contains(process.processName))
此API(您经常被警告不要依赖它)现在已弃用,您不应该期望它在最近的版本或将来工作。设计意图是,您不应该能够发现其他正在运行的内容,因为这些信息正被构思不周的应用程序滥用。而且“跑步”在Android上一开始就没有什么意义。
ActivityManager.RunningAppProcessInfo myProcess = new ActivityManager.RunningAppProcessInfo();
ActivityManager.getMyMemoryState(myProcess);
Boolean isInBackground = myProcess.importance != ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND;