在我的黑莓模拟器中,我现在在后台运行两个应用程序,我想检索哪些是在后台运行的应用程序。我不知道该怎么做。是否可以显示哪些是在后台运行的应用程序。
问问题
3372 次
3 回答
7
列出和切换可见应用程序
- 要列出所有可见的应用程序,请使用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]));
}
}
于 2009-09-23T08:21:59.493 回答
2
于 2009-09-23T06:52:26.567 回答
1
不是真正的答案,但系统不会让我评论。
您是否真的需要知道正在运行的后台应用程序是什么,或者您的应用程序是否在后台运行。如果是后者,我想您可以使用运行时商店构建一些东西
于 2009-07-08T10:31:17.630 回答