如何在Android中检查特定应用是否正在运行

时间:2015-03-29 15:09:32

标签: android

我正在开发一款需要检查特定应用是否正在运行的应用。我正在使用以下代码,但它总是告诉我使用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();

}

2 个答案:

答案 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;