用Codename One編寫的我的應用程序涉及在主窗體中顯示相機預覽。我已經使用本地接口實現,使其在Android(iOS以後)上工作。以前的表單在Codename One上不會完全消失
該應用程序還包括在應用程序購買升級到完整版本。這就是爲什麼定期顯示錶單以建議用戶升級的原因。他們也可以選擇稍後升級,導致此升級到完整版本的形式消失,並使相機預覽的主窗體出現。
然而,在真實的設備上,有時升級到完整版本的形式並沒有完全消失,並且在主窗體上有回憶。在這種情況下,相機預覽會顯示在屏幕的一部分上,而應用程序按鈕不會顯示。然而,幾秒鐘後,如果用戶觸摸屏幕,主窗體將完全顯示,並且升級窗體的回憶消失。
看起來好像在UI線程上可能做了太多事情,但當用戶點擊按鈕關閉升級表單時,我只是打電話給new MainForm(theme).show()
。所以這應該沒問題吧?請注意,CN1模擬器不顯示edt違例(但模擬器中沒有相機預覽)。
或者我必須在將組件添加到佈局後調用MainForm中的revalidate()嗎?我應該怎麼做才能讓這些回憶消失?
任何幫助非常感激,
謝謝@Shai對於這些建議。我既不會調用postInvalidate也不會更改父窗體的不透明度。 – HelloWorld
我發佈了一個解決方案。你會@Shai介意看它並告訴它是否與問題有關? – HelloWorld
這可能會導致不同的問題,invokeAndBlock打開一個完全獨立的線程,並可能導致問題。您已經看到與本地組件(在本機操作系統線程中呈現)相沖突的問題(在Codename One的EDT中)中添加了圍繞該問題工作的第三個線程,但這可能是運氣,可能會導致更糟糕的問題。 –