blackberryintegrationbackground-application

Blackberry - How to get the background application process id


In my blackberry simulator i m running two application at the background now i want to retrive which are the application running in the background.I don't how to do. Is it possible to show which are the application running in the background.


Solution

  • List and switch visible application

    alt text http://img195.imageshack.us/img195/7003/applist.png link text http://img32.imageshack.us/img32/9273/applistmenu.png

    Code:

    class Scr extends MainScreen {
    
        ApplicationDescriptor[] mAppDes;
    
        public Scr() {
            listApplications();
        }
    
        void listApplications() {
            ApplicationManager appMan = 
                ApplicationManager.getApplicationManager();
            mAppDes = appMan.getVisibleApplications();
            add(new LabelField("Visible Applications:"));
            for (int i = 0; i < mAppDes.length; i++) {
                boolean isFG = appMan.getProcessId(mAppDes[i]) == appMan
                        .getForegroundProcessId();
                String text = (isFG ? "[F]:" : "[B]") + mAppDes[i].getName();
                add(new LabelField(text));
            }
        }
    
        protected void makeMenu(Menu menu, int instance) {
            super.makeMenu(menu, instance);
            menu.add(refreshApps);
            makeAppMenuItems(menu);
        }
    
        MenuItem refreshApps = new MenuItem("Refresh", 0, 0) {
            public void run() {
                deleteAll();
                listApplications();
            }
        };
    
        class AppMenuItem extends MenuItem {
            ApplicationDescriptor mAppDes;
            public AppMenuItem(ApplicationDescriptor appDes) {
                super(appDes.getName(), 100000, 100000);
                mAppDes = appDes;
            }
            public void run() {
                ApplicationManager appMan = ApplicationManager
                        .getApplicationManager();
                int processId = appMan.getProcessId(mAppDes);
                appMan.requestForeground(processId);
            }
        }
    
        void makeAppMenuItems(Menu menu) {
            for (int i = 0, cnt = mAppDes.length; i < cnt; i++)
                menu.add(new AppMenuItem(mAppDes[i]));
        }
    }