我正在开发一款需要检查特定应用是否正在运行的应用。我正在使用以下代码,但它总是告诉我使用Toast消息,顺便说一下运行的应用程序不是。
正在使用的函数的代码:
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;
}
函数调用:
if(isNamedProcessRunning("WhatsApp")){
Toast.makeText(this.getBaseContext(),"WhatsApp running", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(this.getBaseContext(),"WhatsApp Not running", Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:2)
通常,应用程序进程名称与包名称相同,例如&#34; com.android.pandora&#34;。你试过&#34; com.whatsapp&#34;或&#34; com.android.whatsapp&#34; ?
在循环中,打印所有进程,这样就可以确保你是否正确获得了whatsapp进程名称。
答案 1 :(得分:0)
如果要检查您的应用程序是否正在运行,可以使用以下代码进行检查。
ActivityManager.RunningAppProcessInfo myProcess = new ActivityManager.RunningAppProcessInfo();
ActivityManager.getMyMemoryState(myProcess);
Boolean isInBackground = myProcess.importance != ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND;