У меня есть приложение, которое прослушивает в фоновом режиме, и когда пользователь нажимает «отправить», он отображает диалог. Однако мне нужно перенести мое приложение на передний план, чтобы пользователь ответил на некоторые вопросы, прежде чем позволить отправить сообщение. но я не был в состоянии сделать это, это код в моем SendListener:Проблема с подключением приложения Blackberry к Foreground
SendListener sl = new SendListener(){
public boolean sendMessage(Message msg){
Dialog myDialog = new Dialog(Dialog.D_OK,
"message from within SendListener",
Dialog.OK,Bitmap.getPredefinedBitmap(Bitmap.EXCLAMATION),
Dialog.GLOBAL_STATUS)
{
//Override inHolster to prevent the Dialog from being dismissed
//when a user holsters their BlackBerry. This can
//cause a deadlock situation as the Messages
//application tries to save a draft of the message
//while the SendListener is waiting for the user to
//dismiss the Dialog.
public void inHolster()
{
}
};
//Obtain the application triggering the SendListener.
Application currentApp = Application.getApplication();
//Detect if the application is a UiApplication (has a GUI).
if(currentApp instanceof UiApplication)
{
//The sendMessage method is being triggered from
//within a UiApplication.
//Display the dialog using is show method.
myDialog.show();
App.requestForeground();
}
else
{
//The sendMessage method is being triggered from
// within an application (background application).
Ui.getUiEngine().pushGlobalScreen(myDialog, 1,
UiEngine.GLOBAL_MODAL);
}
return true;
}
};
store.addSendListener(sl);
App является объект, который я создал выше:
Application App = Application.getApplication();
Я также пытался вызвать приложение к перед тем, как использовать его processID, но пока не повезло.
если я нажимаю экран так, как вы предлагали здесь, было бы лучше, чем нажатие MainScreen? или это только два способа достижения одного и того же результата? – Tsundoku
theScreen переменная имеет тип MainScreen или PopupScreen (я использовал оба варианта успешно). – bryanallott
Я создал UiScreen uiscreen = новый UiScreen(); (Который расширяет начало В) и сделал это внутри sendListener: синхронизированы (Application.getEventLock()) { \t \t \t \t \t окончательным UiEngine Ui = Ui.getUiEngine(); \t \t \t \t \t ui.pushGlobalScreen (uiscreen, 1, UiEngine.GLOBAL_MODAL); \t \t \t \t} У меня есть незаконный аргумент Исключение =/Я что-то пропустил? есть ли способ, которым мы могли бы поговорить об этом немного больше? это школьный проект, и я собираюсь достигнуть крайнего срока =/ – Tsundoku