私のlayout.xmlは、MediaControllerのように使用するいくつかのTextViewとButtonを備えたFrameLayoutで構成されており、SurfaceViewも含まれています。コードでは、MediaPlayerを作成し、SurfaceViewのSurfaceHolderを次のようにディスプレイとして設定します。
surfaceView = (SurfaceView) findViewById(R.id.video_surfaceview);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
mediaPlayer.setDisplay(surfaceHolder);
これはビデオを表示するのに最適ですが、私が電話をかけようとすると:
overLayTextView.setVisibility(View.Gone);
overLayTextViewは引き続き表示されます。overLayTextViewのビューステートを取得しようとしましたが、Goneに設定されています。SurfaceViewは、そのように感じるまで(通常は20秒以上後に発生します)、描画状態を更新しないと思います。だから私の質問は、SurfaceViewまたはSurfaceHolderで、コンテンツの一部を「再描画」する必要があることを通知するために呼び出すことができるものがあるかどうかです。(明らかにビデオではありません)。