Android – surfaceDestroyed() はいつ発生しますか?

Android 開発では、SurfaceView の Surface が破棄された場合、surfaceDestroyed() メソッドが呼び出されます。

SurfaceViewはAndroidで2Dグラフィックスを描画するための特殊ビューで、グラフィックスを別スレッドで描画し、他のビューと並行して使用できる。SurfaceViewが非表示または不要になった場合、システムは自動的にSurfaceオブジェクトを破棄し、その際にsurfaceDestroyed()メソッドがトリガーされる。

SurfaceDestroyed()メソッドは、次のような場合に呼び出されることが多い:

  1. アクティビティがバックグラウンドへ移動または破棄された時:アクティビティがバックグラウンドへ移動または破棄された時、SurfaceViewはSurfaceオブジェクトを自動的に破棄し、surfaceDestroyed()メソッドをトリガーします。
  2. サーフェイスビューは上書きされました:サーフェイスビューがダイアログなどの他のビューによって上書きされると、サーフェイスビューが隠されたり、一部が遮られたりすることがあり、システムはサーフェイスオブジェクトを破棄し、surfaceDestroyed ()メソッドをトリガーします。
  3. SurfaceView の可視性が変化した場合は(例:可視から非可視へ)、システムによって Surface オブジェクトが破棄され、それにより surfaceDestroyed() メソッドが呼び出される。

SurfaceDestroyed()メソッド内で、ドローイングスレッドを停止したり、ドローイングリソースを解放したりといった、リソースの解放やクリーンアップ操作を実行できます。

bannerAds