2012-09-22 61 views

回答

2

Take a look at this answer,確保要注意實際的回答下面的評論。您需要請求全部模塊在設備上處理,然後爲每個請檢查以確定它們是否正在運行。

此外,see this BlackBerry forum response,在這裏引用,因爲它是一個非SO網站上的內容:


  1. 獲取所有模塊句柄(可能是W/O兄弟姐妹)
  2. 遍歷手柄名單並過濾出庫類型(留給我們CLDC/Midlet)
  3. 獲取應用程序描述符(主)和關聯的PID
  4. 如果PID存在,則暗示進程正在運行(可能是可見的或不可見的隱藏後臺進程無UI)。

另一個相關的API是ApplicationManager.getVisibleApplications(),它允許你列出運行的應用程序,是可見的(不包括後臺服務)。

至於哪些在後臺,您將從上方獲取進程ID,然後您可以根據當前前臺進程ID檢查這些進程ID(只有一個可以位於前臺...所有其他進程都在背景)。從ApplicationManager.getForegroundProcessId()獲取前臺進程ID

+0

感謝您的迴應和幫助。 int [] getModules = CodeModuleManager.getModuleHandles();給我一些數字,例如[l @ f91e18c8和[f4 @ 34fgj7等等。如何打印出應用程序的實際名稱,如'Messages','phone','facebook'ect – BirthOfTragedy

+0

@BirthOfTragedy,一旦你有模塊句柄(這不是一個名稱,只是一個模塊的引用),那麼你可以使用[CodeModuleManager中的其他方法](http://www.blackberry.com/developers/docs/5.0.0api/net/rim/device/api/system/CodeModuleManager.html#getModuleAliasName%28int, %20int%29),或嘗試類似[ApplicationDescriptor.getName()](http://www.blackberry.com/developers/docs/5.0.0api/net/rim/device/api/system/ApplicationDescriptor.html# getName()),用[這裏的示例](http://stackoverflow.com/a/11843571/119114) – Nate

1
This code will help you to find out current running applications 

ApplicationManager appMan = ApplicationManager.getApplicationManager(); 
     ApplicationDescriptor appDes[] = appMan.getVisibleApplications(); 

     for (int i = 0; i < appDes.length; i++) 
     { 
        result = appDes[i].getModuleName(); 
      System.Out.Println("Currently Running application " +result) 
     } 
相關問題