gpt4 book ai didi

java - Android libGDX 在启动时随机崩溃

转载 作者:行者123 更新时间:2023-12-01 11:44:09 25 4
gpt4 key购买 nike

看起来InputProcessor正在尝试在整个程序完成初始化之前运行。

如何延迟InputProcessor

因为当我第一次启动程序时,我随机得到NullPointerExceptions,因为touchdown事件在程序加载过程中被触发(只需要2秒)启动程序)。

我启动了 2 个线程,因此我想我可能需要在 create() 方法中间暂停,直到这 2 个线程完成其变量的初始化。

“寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用。”

期望的行为:我创建线程等待其他 2 个线程完成是我认为这个问题将得到解决的方式。

这是我的代码的小图表

//create thread 1
//create thread 2
//initialize variables
//initialize InputProcessor
//infinite while loop

//helper thread 1
//initialize some variables
//infinite while loop

//helper thread 2
//initialize some variables
//infinite while loop

问题是创建线程的输入似乎在程序完成启动之前就已接受输入。此故障仅在启动后的第一秒内偶尔发生。

最佳答案

为什么不使用共享 AtomicBoolean线程之间发出信号 InputProcessor 可以安全初始化。

或者你可以使用Thread.join在主线程中等待线程完成。

如果没有看到一些最小的代码,就很难给出进一步的答案。

更新:

根据您的图表序列,主线程保存对thread_1thread_2的引用,每个线程实例都可以有一个AtomicBoolean值,主线程可以在继续初始化之前循环检查两者。

或者您也可以使用条件变量( android specificjava )来 blick 主线程,直到子线程初始化完成。

关于java - Android libGDX 在启动时随机崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29291586/

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