Welcome!

Welcome to the Official BlackBerry Support Community Forums. This is your resource to discuss support topics with your peers, and learn from each other. New to the forum? Please visit the ‘Getting Started’ link below.
inside custom component

Java Development

Reply
Developer
Shraddha
Posts: 34
Registered: ‎07-25-2008
Accepted Solution

Determining if application is running

Hi

 

I am developing an application that has a background thread which invokes a UIApplication. 

Is there anyway i can determine from this backgroud thread whether the UIApplication is already running? 

I tried to use Application.isAlive or isForeground, but i dont have the instance of this UIApplication in the backround thread.

 

In short, can anyone suggest how to determine if application is running from outside the application? (excuse the ill-framed sentence :smileytongue: )

 

Thanks in advance

Shraddha

Please use plain text.
Developer
yosoh
Posts: 213
Registered: ‎07-18-2008

Re: Determining if application is running

why dont you use runtime store to do this. take a look at this BB article which does something similar.

 

http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800451/800783/How_To_...

 

regards,

 

yosoh 

--------------------------------------------------
problemSolved() ? kudosPlease():kudosPlease();
Please use plain text.
BlackBerry Development Advisor
ttahir
Posts: 36
Registered: ‎07-14-2008

Re: Determining if application is running

You can use the getVisibleApplications method in the net.rim.device.api.system.ApplicationManager class to retrieve descriptors for visible, running applications.

 

I think if you explain why you are looking for this function, we may be able to suggest a better solution instead.

 

Tariq

Please use plain text.
Developer
richard_puckett
Posts: 191
Registered: ‎04-03-2008

Re: Determining if application is running

  Hey Shraddha, how's it going?  :smileyhappy:

 

  In addition to the afore-mentioned methods, here's how I do what you're looking for.  It's a little old, and there's certainly room for improvement, but it's worked for me in the past.  "NoSuchModuleException" is one of my own, it's not part of RIM's API - basically just a marker on top of Exception.

 

 

public class ProcessUtils { public static int getProcessId(String moduleName) throws NoSuchModuleException { ApplicationManager appMgr = ApplicationManager.getApplicationManager(); int moduleHandle = CodeModuleManager.getModuleHandle(moduleName); if (moduleHandle == 0) { throw new NoSuchModuleException(); } ApplicationDescriptor[] appDes = CodeModuleManager.getApplicationDescriptors(moduleHandle); return appMgr.getProcessId(appDes[0]); } public static boolean isServiceRunning(String moduleName) { try { if (getProcessId(moduleName) == -1) { return false; } else { return true; } } catch (NoSuchModuleException e) { // This could be a problem... return false; } } }

 

Please use plain text.
Developer
Shraddha
Posts: 34
Registered: ‎07-25-2008

Re: Determining if application is running

Hey Guys.. THanks a tonne!

Yosoh that was the API i needed.. thanks it worked. 

And Richard, always to the rescue  :smileyhappy: ... left me with no problems at all :smileyvery-happy:

 

Tariq, I needed this to invoke a GUI application from a thread listening for a particular SMS. 

 

Thanks all of you...

 

 

Please use plain text.