Закрыть Blackberry Map после использования пользовательского пункта меню
Я создал для BlackberryMaps собственный пункт меню с помощью "MenuItem" и вызываю Blackberry Maps. После использования этого элемента текущее местоположение (MapView) должно быть отправлено обратно в мое приложение. Это отлично работает.
Проблема в том, что я не нашел решения для закрытия приложения после использования пункта меню. Есть ли возможность закрыть Blackberry Maps? Или установить мое собственное приложение на передний план?
private static class MapMenuItem extends ApplicationMenuItem {
//creates a new MenuItem for Blackberry Maps and defines the action which should //happen after a click on the MenuItem
CustomDialog_GPS customDialogGps;
StartScreen startScreen;
MapMenuItem(StartScreen startScreen, CustomDialog_GPS customDialogGps) {
super(20);
this.startScreen = startScreen;
this.customDialogGps = customDialogGps;
}
public String toString() {
//creates the name for the navigation Menu
String itemName = ""+_res.getString(CUSTOMDIALOG_GPS_USE_AS_NEW_LOCATION);
return itemName;
}
public Object run(Object context) {
//defines what should happen after a click on the menu
//get the location at which the cursor is pointing at.
MapView mv = (MapView)context;
if (mv != null) {
//opens a method inside of CustomDialogGPS which handles the latitude and longitude
customDialogGps.saveAdjustedPosition(mv);
//TODO pop Screen
//Screen screen = (Screen)UiApplication.getUiApplication().getActiveScreen();
}
else {
throw new IllegalStateException("Context is null, expected a MapView instance");
}
return null;
}
}
2 ответа
К сожалению, вы не можете закрыть другое приложение программно (на самом деле вы можете, если знаете, например, где находится пункт меню, который нужно закрыть), но вы можете сделать приложение приоритетным. UiApplication.getApplication().requestForeground()
, Какое, вероятно, подходящее решение для вас.
Вместо того, чтобы передавать пользователя в приложение "Карты", которое находится за пределами вашего приложения, и вы не можете его контролировать, создайте свой собственный экран с MapField в нем. Использование собственного экрана и, возможно, расширение класса MapField для переопределения функций, если это необходимо, позволяет вернуться к предыдущему экрану после выбора пользователем местоположения.