我发现了一个问题,即应用程序在显示Android弹出窗口后显示黑屏“系统更新”或“选择邮件应用程序”是由相机对象引起的。
将相机连接到视频并打开弹出窗口后(以后):
包含伪代码
video = new Video(width, height); //flash.media.Video
video.attachCamera(camera); //flash.media.Camera
videoContainer.addChild(video);
...
<s:Button label="send mail" click="{clear() and navigateToURL('mailTo:...');}"/> //will cause to open the "Select a mail app"-popup
function clear()
{
video.attachCamera(null);
video.clear();
removeChild(video);
video = null;
camera = null;
}
当显示黑屏时,flex应用程序仍然处于活动状态,其他按钮可以点击(如果找到它们)。它似乎只是不再渲染flex应用程序,但如果以前没有连接相机,则不会出现此问题。此外,导航器视图堆栈的哪个视图处于活动状态也无关紧要。如果在弹出窗口打开后随时在任何视图上显示黑色屏幕,则连接相机。
所以我想知道是否有办法强制应用再次渲染当前视图,或者是否有其他方法可以从内存中清除/删除/删除相机对象。
@edit
我的视频对象已添加到SpriteVisualElement
<s:SpriteVisualElement id="videoContainer"/>
@edit
经过进一步调查后,似乎renderMode auto,gpu,cpu,direct也会影响行为。有时黑屏可见一小段时间,然后视图再次呈现,另一种模式显示视图一小段时间然后黑屏,......在我上面描述的情况下,它设置为'gpu'。