Blackberry - Как получить идентификатор процесса фонового приложения
В моем симуляторе BlackBerry я запускаю два приложения в фоновом режиме, теперь я хочу получить приложение, работающее в фоновом режиме. Я не знаю, как это сделать. Можно ли показать, какие приложения работают в фоновом режиме.
3 ответа
Список и переключение видимого приложения
- Для отображения всех видимых приложений используйте ApplicationManager.getVisibleApplications()
- Чтобы вывести на передний план некоторые приложения, используйте ApplicationManager.requestForeground(processId).
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.
И запись базы знаний о том, как переключить приложение на задний план / передний план.
Удачи!
Не совсем ответ, но система не позволит мне комментировать.
Вам действительно нужно знать, какие запущенные фоновые приложения, или просто, если ваши приложения работают в фоновом режиме. Если последнее, я думаю, вы можете построить что-то, используя хранилище времени выполнения