2017-10-31 10 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); 
}