2017-11-07 21 views

答えて

0

あなたがstaticリソースを使用しているとすることができ、それがこの問題の最も一般的な原因です。

OSがアプリケーションを一時停止すると、OSはOpenGLコンテキストを含めて(メモリを解放するために)アプリケーションを終了することがありますが、これは保証されません。

アプリがフォアグラウンドになると、OSはアプリの新しいインスタンスを開始します。そのため、既にロードしているすべてのアセットを含め、アプリの前のインスタンスの同じVMを再利用します。これは、すべての静的変数が前回のアプリ実行時の値を持つことを意味します。それらの変数のいずれかにリソースが含まれていると、それらのリソースはもはや有効ではありません。アプリケーションは新しいOpenGLコンテキストを作成しますが、アセットは以前の無効なコンテキストを指しています。

だから私は持たないでください/使用することをお勧めしますstaticリソースアンドロイドでAssetManagerTextureBitmapFont ....

静的な使用を決める場合は、そのライフサイクルを十分に理解してください。

+1

完璧な答えです。私は静的なものとして皮膚にアクセスしていました。ありがとう:) –

関連する問題