我正在编写一个用于 VFR 导航的应用程序。该应用程序使用OSMDroid(当前版本6.1.8)。 基本上该应用程序可以工作,但有时(不能说在什么条件下!)该应用程序“冻结”。
使用日志文件,我可以看到,应用程序可以运行,但整个显示被冻结......
绘制元素的函数被调用,所有应用程序的函数都正常工作,并且在日志文件中没有发现任何异常。
但是显示屏停止工作(不仅 OSMDroid 的地图不会更新,其他元素也不会更新)。我可以重新启动应用程序,其他应用程序可以工作,但我的应用程序不能。
该应用程序不会响应用户交互(点击按钮或类似操作),并且屏幕上的所有元素都不会刷新。
尝试强制元素刷新不会给出任何结果...
我编写了一个线程,每 500 毫秒刷新一次屏幕,以便应用程序的其余部分应该“单独”工作。
我的代码:
contentView = findViewById(android.R.id.content).getRootView();
updateThread = new Thread(new Runnable()
{
@Override
public void run()
{
while(1)
{
MainActivity.this.runOnUiThread(new Runnable() {
public void run() {
try
{
periodicalScreenUpdate(); // this will update the elements on screen...
Logger.debug("Invalidate screen");
contentView.invalidate();
}
catch(Exception e)
{
Logger.notice(e);
}
}
}
Thread.sleep(500);
}
});
}
有人知道可能是什么问题以及我该如何解决它吗?
非常非常感谢!
卢卡