瀏覽代碼

[검색][New] 캐쉬 SoftReference 적용 취소
- 생각보다 빈번하게 GC 해감

hyodong.min 6 年之前
父節點
當前提交
ead28971b4
共有 1 個文件被更改,包括 14 次插入16 次删除
  1. 14 16
      app/src/main/java/kr/co/zumo/app/lifeplus/model/module/APISearchModule.java

+ 14 - 16
app/src/main/java/kr/co/zumo/app/lifeplus/model/module/APISearchModule.java

@@ -5,7 +5,6 @@ package kr.co.zumo.app.lifeplus.model.module;
 
 import android.util.Log;
 
-import java.lang.ref.SoftReference;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -31,9 +30,9 @@ import kr.co.zumo.app.lifeplus.util.StringUtil;
  */
 public class APISearchModule extends LifeplusAPIModule<SearchRequestBean, SearchResultBean> {
 
-  private static SoftReference<List<SearchContentsBean>> searchContentsReference;
-  private static SoftReference<List<TagBean>> tagReference;
-  private static SoftReference<List<CategoryBean>> categoryReference;
+  private static List<SearchContentsBean> searchContents;
+  private static List<TagBean> tagBeans;
+  private static List<CategoryBean> categoryBeans;
   private static String keyword;
   private static String order;
 
@@ -44,15 +43,14 @@ public class APISearchModule extends LifeplusAPIModule<SearchRequestBean, Search
 
     // 기본 데이터(필터/정렬 없이 전체 데이터, 동일 키워드, 동일 정렬)라면 캐쉬에서 리턴
     // 키워드 동일
-    if (null != searchContentsReference && null != tagReference && null != categoryReference
-      && null != searchContentsReference.get() && null != tagReference.get() && null != categoryReference.get()
+    if (null != searchContents && null != tagBeans && null != categoryBeans
       && StringUtil.isEmpty(filters) && null != keyword && keyword.equals(requestBean.getKeyword())
       // 정렬이 없거나, 이전과 정렬이 같다면
       && ((null == order && null == requestBean.getOrder()) || (null != order && order.equals(requestBean.getOrder())))) {
 
-      List<TagBean> tags = new ArrayList<>(tagReference.get());
-      List<CategoryBean> categories = new ArrayList<>(categoryReference.get());
-      List<SearchContentsBean> searchContentsBeans = searchContentsReference.get();
+      List<TagBean> tags = new ArrayList<>(tagBeans);
+      List<CategoryBean> categories = new ArrayList<>(categoryBeans);
+      List<SearchContentsBean> searchContentsBeans = searchContents;
       // 필터가 없을 때만 적용
       List<SearchContentsBean> list = new ArrayList<>();
       if (StringUtil.isEmpty(categoryNo)) {
@@ -97,15 +95,15 @@ public class APISearchModule extends LifeplusAPIModule<SearchRequestBean, Search
           order = requestBean.getOrder();
 
           if (null != searchResultBean.getData()) {
-            searchContentsReference = new SoftReference<>(new ArrayList<>(searchResultBean.getData()));
+            searchContents = new ArrayList<>(searchResultBean.getData());
           }
 
           if (null != searchResultBean.getTagBeans()) {
-            tagReference = new SoftReference<>(new ArrayList<>(searchResultBean.getTagBeans()));
+            tagBeans = new ArrayList<>(searchResultBean.getTagBeans());
           }
 
           if (null != searchResultBean.getCategoryBeans()) {
-            categoryReference = new SoftReference<>(new ArrayList<>(searchResultBean.getCategoryBeans()));
+            categoryBeans = new ArrayList<>(searchResultBean.getCategoryBeans());
           }
         }
       });
@@ -115,10 +113,10 @@ public class APISearchModule extends LifeplusAPIModule<SearchRequestBean, Search
    * clear cache
    */
   public static void clearCache() {
-    Log.w("APP# APISearchModule | getAPI", "|" + " ================ cache clear ================");
-    searchContentsReference = null;
-    tagReference = null;
-    categoryReference = null;
+    Log.w("APP# APISearchModule | clearCache", "|" + " ================ cache clear ================");
+    searchContents = null;
+    tagBeans = null;
+    categoryBeans = null;
     keyword = null;
     order = null;
   }