Android:addContentView() 在屏幕状态更改之前不会出现



我正在当前运行的活动上添加一个视频。我使用以下方法实现了这一点:

this.surface    = new SurfaceView(getApplicationContext());
this.surface.getHolder().addCallback(this);
WindowManager.LayoutParams params = new WindowManager.LayoutParams();
params.height       = 500;
params.width        = 500;
this.activity.addContentView(surface, params);

然后,我将MediaPlayer连接到从这个.surface获得的SurfaceHolder上。它完全按照我的需要工作,除了一件事:只有在屏幕状态改变后,SurfaceView才会出现在屏幕上。我必须关闭屏幕才能将视图添加到"活动"中。之后,一切如预期。

有人知道为什么会发生这种事吗?

编辑:从Kelvin Trinh的评论中添加了更多信息

这是一个AIR本机扩展,使用本机视频组件。AIR应用程序充当主要活动,尽管我无法访问布局或类似的内容。this.activity是主要活动,取自扩展上下文(AIR和Java应用程序如何通信)。我需要在我的应用程序顶部显示视频,我已经完成了。

您没有提供包装代码的类,但我想这是您主要活动中的一个视图。

this.activity.addContentView(surface, params);表示您在特定视图上时向活动添加了曲面视图。这只会将曲面的引用添加到活动的视图层次结构中,并且只有在"活动"重新加载(重新创建、重新启动或恢复)时才会更新。

最新更新