diff --git a/src/com/netease/qa/emmagee/service/EmmageeService.java b/src/com/netease/qa/emmagee/service/EmmageeService.java index a965ad435bee6c8ed2a91adf6167b074c0a7343c..10bfe7dac8c89081963ad8b3a3c7c832369802e0 100644 --- a/src/com/netease/qa/emmagee/service/EmmageeService.java +++ b/src/com/netease/qa/emmagee/service/EmmageeService.java @@ -77,7 +77,7 @@ public class EmmageeService extends Service { private final static String LOG_TAG = "Emmagee-" + EmmageeService.class.getSimpleName(); private static final String BLANK_STRING = ""; - + private WindowManager windowManager = null; private WindowManager.LayoutParams wmParams = null; private View viFloatingWindow; @@ -354,7 +354,7 @@ public class EmmageeService extends Service { if (!isServiceStop) { dataRefresh(); handler.postDelayed(this, delaytime); - if (isFloating) { + if (isFloating && viFloatingWindow != null) { windowManager.updateViewLayout(viFloatingWindow, wmParams); } // get app start time from logcat on every task running @@ -484,7 +484,9 @@ public class EmmageeService extends Service { private void updateViewPosition() { wmParams.x = (int) (x - mTouchStartX); wmParams.y = (int) (y - mTouchStartY); - windowManager.updateViewLayout(viFloatingWindow, wmParams); + if (viFloatingWindow != null) { + windowManager.updateViewLayout(viFloatingWindow, wmParams); + } } /** @@ -509,8 +511,10 @@ public class EmmageeService extends Service { @Override public void onDestroy() { Log.i(LOG_TAG, "service onDestroy"); - if (windowManager != null) + if (windowManager != null) { windowManager.removeView(viFloatingWindow); + viFloatingWindow = null; + } handler.removeCallbacks(task); closeOpenedStream(); // replace the start time in file