我有一个BlackBerry App,它具有在CheckIn
屏幕中实现的发送按钮的监听器。数据通过Web服务发送。如果数据发送成功,则收到确认消息“OK”。我试图根据收到的响应切换BlackBerry App中的屏幕。BlackBerry中的切换屏幕
FieldChangeListener sendBtnListener = new FieldChangeListener() {
public void fieldChanged(Field field, int context)
{
try {
String alertMsg=sendTextCheckIn();
if(alertMsg.equals("OK"))
{
UiApplication.getUiApplication().invokeLater(new Runnable()
{
public void run()
{
UiApplication.getUiApplication().pushScreen(new MyScreen());
}
});
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
但是,以上是投掷App Error 104: IllegalStateException
。任何人都可以请指导如何切换BlackBerry App之间的屏幕。
编辑:我可以切换到任何其他屏幕,但我不能切换到MyScreen
。 NOTE:
自选画面是应用程序的主要(第一个)屏幕。上述方法sendTextCheckIn()
调用放置在MyScreen
内的另一种方法。这与这个错误有什么关系?请指教。
'sendTextCheckIn()'方法是否实际进行网络调用?如果是这样,你不应该像''fieldChanged()'那样调用它。您应该使用后台'Thread'来运行该调用。当'sendTextCheckIn()'得到响应时,你应该使用'invokeLater()'调用'pushScreen()'。 – Nate