gpt4 book ai didi

黑莓: "Application is not responding; process terminated"因为 UiApplication.getUiApplication().popScreen()?

转载 作者:行者123 更新时间:2023-12-04 11:29:35 25 4
gpt4 key购买 nike

我有一个 Blackberry 应用程序,当它在一些支持触摸的模拟器(例如:9500、9520、9530、9550)中运行时,终止于:

“应用程序没有响应;进程 XPTO 终止”

使用日志,我发现应用程序似乎在我异步发出 HTTP 请求的类中停止:类似于:

public class LoadingFullScreen extends FullScreen implements Runnable {

private Thread actionThread = null;

protected void onDisplay() {
actionThread = new Thread(this);
actionThread.start();
}

protected void onUndisplay() {
if(actionThread != null && actionThread.isAlive()) {
actionThread.interrupt();
}
}

public void run() {
//make http requests - this is done successfully

synchronized(Application.getEventLock()) {
Screen active = UiApplication.getUiApplication().getActiveScreen();
if (active instanceof LoadingFullScreen) {
Logger.debug("LoadingFullScreen popping screen"); //this appears in logs
UiApplication.getUiApplication().popScreen(active);
Logger.debug("LoadingFullScreen screen popped"); //this never appears in logs
}
}
}
}

我使用 UiApplication.getUiApplication().pushModalScreen(new LoadingFullScreen()) 启动此屏幕

在日志中,我可以看到:
[0.0] Wed Jul 27 17:53:06 GMT 2011 - DEBUG: LoadingFullScreen popping screen
[0.0] JVM: bklt[1] @163148: JBSC on=0
[0.0] JVM: bklt[1] @163148: SC 0
[0.0] JVM: bklt[1]: setTimeout 30
[0.0] Application XPTO(212) is not responding; process terminated

好像 UiApplication.getUiApplication().popScreen()正在阻止应用程序,因此操作系统会终止应用程序,但为什么呢?

编辑:
我也试过使用
UiApplication.getUiApplication().invokeLater(new Runnable() {...} };            

而不是 synchronized(Application.getEventLock()) {...}但我有完全相同的结果

编辑 2:
我也试过 active.close()而不是 UiApplication.getUiApplication().popScreen(active);但我有完全相同的结果

编辑 3:
使用 javaloader我从模拟器中得到了这种堆栈跟踪:
guid:0x9C3CD62E3320B498 time: Thu Jul 28 15:02:50 2011  severity:0 type:3 app:Java Exception data:
ForcedStackTraceException
net_rim_services_impl(4) 27 2 0x1030B000
net_rim_os-3(4BEF0320)
HttpConnectionManager$CleanupThread
run
0x3B09
guid:0x9C3CD62E3320B498 time: Thu Jul 28 15:02:50 2011 severity:0 type:3 app:Java Exception data:
ForcedStackTraceException
XPTO(247) 60 4 0x124A0400
net_rim_cldc-16(4BEEF8A5)
TextField
getFocusRect
0x2A61
net_rim_cldc-12(4BEEF8A5)
Manager
getFocusRect
0x717
net_rim_cldc-12(4BEEF8A5)
Manager
getFocusRect
0x717
net_rim_cldc-12(4BEEF8A5)
Screen
getFocusRect
0x9AF2
net_rim_cldc-12(4BEEF8A5)
Screen
callOnExposed
0x9D16
net_rim_cldc-13(4BEEF8A5)
UiEngineImpl
<private>
0x9007
net_rim_cldc-13(4BEEF8A5)
UiEngineImpl
removeScreen
0x7D08
net_rim_cldc-12(4BEEF8A5)
Screen
close
0x6B66
XPTO-8(4E316B06)
LoadingFullScreen$1
run
0x34D5
net_rim_cldc-8(4BEEF8A5)
Application
dispatchInvokeLater
0x1A87
net_rim_cldc-8(4BEEF8A5)
Application
<private>
0x2809
net_rim_cldc-8(4BEEF8A5)
Application
processNextMessage
0x1AEF
net_rim_cldc-9(4BEEF8A5)
ModalEventThread
run
0xBE4F
guid:0x9C3CD62E3320B498 time: Thu Jul 28 15:02:50 2011 severity:0 type:3 app:Java Exception data:
ForcedStackTraceException
XPTO(247) 30 2 0x139DA800
net_rim_cldc(4BEEF8A5)
Object
wait
0x9922
net_rim_cldc-8(4BEEF8A5)
Application
startModalEventThread
0x1EB8
net_rim_cldc-13(4BEEF8A5)
UiEngineImpl
addScreenModal
0x83F4
net_rim_cldc-13(4BEEF8A5)
UiEngineImpl
pushModalScreen
0x674E
net_rim_cldc-13(4BEEF8A5)
UiApplication
pushModalScreen
0x62B0
XPTO-8(4E316B06)
MyBaseScreen
<private>
0x3AA6
XPTO-8(4E316B06)
MyBaseScreen
openTheModalScreenFunction
0x382C
XPTO-8(4E316B06)
MyBaseScreen$4
fieldChanged
0x4271
net_rim_cldc-11(4BEEF8A5)
Field
fieldChangeNotify
0x160B
net_rim_cldc-16(4BEEF8A5)
TextField
replace
0x7A5
net_rim_cldc-16(4BEEF8A5)
TextField
inputMethodTextChanged
0x24E1
net_rim_cldc-15(4BEEF8A5)
PasswordEditField
inputMethodTextChanged
0x4F26
net_rim_cldc-27(4BEEF8A5)
IMContext
dispatchInputMethodEvent
0x1E00
net_rim_tid-4(4BEEF8E1)
SLInputMethod
sendComposedText
0x5CA1
net_rim_tid-4(4BEEF8E1)
SLInputMethod
sendComposedText
0x5BD1
net_rim_tid_fastEuropean(4BEF034C)
FastEuropeanInputMethod
sendComposedText
0x48E1
net_rim_tid_fastEuropean(4BEF034C)
FastEuropeanInputMethod
dispatchConversionEvent
0x43E3
net_rim_tid-4(4BEEF8E1)
SLInputMethod
dispatchKeyEvent
0x5309
net_rim_tid-4(4BEEF8E1)
SLInputMethod
dispatchEvent
0x63CA
net_rim_tid_fastEuropean(4BEF034C)
FastEuropeanInputMethod
dispatchEvent
0x426E
net_rim_cldc-27(4BEEF8A5)
InputContext
dispatchEvent
0x3E15
net_rim_cldc-27(4BEEF8A5)
IMContext
dispatchEvent
0x21DE
net_rim_cldc-11(4BEEF8A5)
Field
dispatchEvent
0x3739
net_rim_cldc-16(4BEEF8A5)
TextField
dispatchEvent
0x30F6
net_rim_cldc-27(4BEEF8A5)
EventHandler
<private>
0x1460
net_rim_cldc-27(4BEEF8A5)
EventHandler
processKeyEvent
0x1A79
net_rim_cldc-16(4BEEF8A5)
TextField
processKeyEvent
0x37F6
net_r

编辑 4:
我试图移动 run() LoadingFullScreen 中的方法到新 Runnable类(class),因为有人告诉我有 LoadingFullScreen implement Runnable当该类显示为模式屏幕时,可能会导致问题。
但是,我没有运气,我仍然遇到同样的问题。
有任何想法吗?

编辑 5:
在这里解决: BlackBerry: "Application is not responding; process terminated" because of UiApplication.getUiApplication().popScreen()?

最佳答案

我记得有一次我遇到了几乎相同的问题。每当我试图通过获取事件线程的锁定来弹出屏幕时,应用程序就会崩溃。因此,与其获取事件线程的保持(锁定),不如尝试使用 invokeLater() 在事件线程上进行同步。

UiApplication.getUiApplication().invokeLater(new Runnable()
{
public void run()
{

}
});

关于黑莓: "Application is not responding; process terminated"因为 UiApplication.getUiApplication().popScreen()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6849085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com