From 10a6dad0ddc5d0b1dbb6c29265b866b40c52dce2 Mon Sep 17 00:00:00 2001 From: SugarMan <826554817@qq.com> Date: Mon, 24 Oct 2016 11:49:48 +0800 Subject: [PATCH] fix bug memory leak --- .../sample/fragment/ContentFragment.java | 17 +++++------------ .../com/sidemenu/util/ViewAnimator.java | 12 ++++++------ 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/yalantis/com/sidemenu/sample/fragment/ContentFragment.java b/app/src/main/java/yalantis/com/sidemenu/sample/fragment/ContentFragment.java index 0842e8f..2a7192d 100644 --- a/app/src/main/java/yalantis/com/sidemenu/sample/fragment/ContentFragment.java +++ b/app/src/main/java/yalantis/com/sidemenu/sample/fragment/ContentFragment.java @@ -65,18 +65,11 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, @Override public void takeScreenShot() { - Thread thread = new Thread() { - @Override - public void run() { - Bitmap bitmap = Bitmap.createBitmap(containerView.getWidth(), - containerView.getHeight(), Bitmap.Config.ARGB_8888); - Canvas canvas = new Canvas(bitmap); - containerView.draw(canvas); - ContentFragment.this.bitmap = bitmap; - } - }; - - thread.start(); + Bitmap bitmap = Bitmap.createBitmap(containerView.getWidth(), + containerView.getHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(bitmap); + containerView.draw(canvas); + ContentFragment.this.bitmap = bitmap; } diff --git a/library/src/main/java/yalantis/com/sidemenu/util/ViewAnimator.java b/library/src/main/java/yalantis/com/sidemenu/util/ViewAnimator.java index 83a023c..12a0b24 100644 --- a/library/src/main/java/yalantis/com/sidemenu/util/ViewAnimator.java +++ b/library/src/main/java/yalantis/com/sidemenu/util/ViewAnimator.java @@ -61,7 +61,7 @@ public void onClick(View v) { animatorListener.addViewToContainer(viewMenu); final double position = i; final double delay = 3 * ANIMATION_DURATION * (position / size); - new Handler().postDelayed(new Runnable() { + viewList.get((int)position).postDelayed(new Runnable() { public void run() { if (position < viewList.size()) { animateView((int) position); @@ -82,13 +82,13 @@ private void hideMenuContent() { for (int i = list.size(); i >= 0; i--) { final double position = i; final double delay = 3 * ANIMATION_DURATION * (position / size); - new Handler().postDelayed(new Runnable() { - public void run() { - if (position < viewList.size()) { + if (position < viewList.size()){ + viewList.get((int) position).postDelayed(new Runnable() { + public void run() { animateHideView((int) position); } - } - }, (long) delay); + }, (long) delay); + } } }