2017-10-31 11 views
1

私のアプリケーションには多くのビューがあり、各ビューにはメモリを消費するいくつかのイメージとアイコンがあります。ビューを開くと、使用されるメモリが増加してメモリリークが発生します。ビューが適切にキャッシュされていることに気付きましたが、この場合はキャッシュを制限してキャッシュからビューを削除したいのですが、どうすればいいですか?多くのビューを持つアプリケーションでメモリリークが発生する

答えて

0

前述のとおり、Gluonビューは適切にキャッシュされています。そのために

、使用してViewを追加たび:

MobileApplication.getInstance().addViewFactory(MY_VIEW,() -> new View(new Label("Hi"))); 

グルーオンモバイルフレームワークが内部的にあなたのためのビューやレイヤーのキャッシュを管理します。

ビューが必要な場合は常に、そのビューが作成され、キャッシュされます。次に必要なときに、キャッシュから検索されます(存在する場合)。

デバイスのメモリが不足すると、既存のビューを自動的にキャッシュから削除することができます。

しかし、あなたはそれを手動で行いたい場合は、グルーオンMobileApplicationクラスは、実際には、ビュー工場からunregisterビューにメソッドが含まれます。

MobileApplication.getInstance().removeViewFactory(MY_VIEW); 

はそう、これは例えば、工場自体を削除することに注意してくださいを次にそれを必要とするときは、工場に再度追加する必要があります。あなたが使用できることについては

if (! MobileApplication.getInstance().isViewPresent(MY_VIEW)) { 
    MobileApplication.getInstance().addViewFactory(MY_VIEW,() -> new View(new Label("Hi"))); 
    MobileApplication.getInstance().switchView(MY_VIEW); 
} 
関連する問題