Blackberry - Как получить идентификатор процесса фонового приложения

В моем симуляторе BlackBerry я запускаю два приложения в фоновом режиме, теперь я хочу получить приложение, работающее в фоновом режиме. Я не знаю, как это сделать. Можно ли показать, какие приложения работают в фоновом режиме.

3 ответа

Решение

Список и переключение видимого приложения

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

Код:

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]));
    }
}

Взгляните на Справочник API для RuntimeStore.

И запись базы знаний о том, как переключить приложение на задний план / передний план.

Удачи!

Не совсем ответ, но система не позволит мне комментировать.

Вам действительно нужно знать, какие запущенные фоновые приложения, или просто, если ваши приложения работают в фоновом режиме. Если последнее, я думаю, вы можете построить что-то, используя хранилище времени выполнения

Другие вопросы по тегам