핸들러 3

java.lang.RuntimeException: Performing stop of activity that is not resumed

보통 스플래시, 로딩화면을 넣은 경우 발생함. 이런 경우 앱 포즈시 발생하는 에러! 에러: java.lang.RuntimeException: Performing stop of activity that is not resumed 해결 : private final int SPLASH_DELAY_MESSAGE = 100; Handler splashHandler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { switch (msg.what) { case SPLASH_DELAY_MESSAGE: startActivity(new Intent(mContext, MainActivity.class)); d..

[안드로이드] setText 업데이트 적용 안되는 현상

UI에서 setText를 적용하기는 참 귀찮다. 이 놈이 현재 UI 스레드에서 돌고 있는지 등에 대한 고려를 해야 하기 때문이다. 즉, 팝업에 갔다 오거나... 여기 저기 갔다와서 적용사항을 변경해야 하는데 이때 setText를 하면 먹히지 않는다. 즉, 그 때와 지금의 주인이 다르기 때문이다. 이럴 때에 사용하라는 방법이 핸들러를 돌려라... 스레드를 돌려라... 등의 추천이 많은데... 그냥 다시 찾아서 넣어주면 된다. LayoutInflater layoutInFlater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View rootView = layoutInFlater.inflate(R.layout.fr..

스레드, 타이머, 핸들러 그리고 루퍼

일정, 특정 시간 후에 어떤 작업을 해야 할 경우 아래와 같이 타이머를 쓸 수 있다. 하지만 이렇게 사용할 경우 TimerTask is scheduled already 에러를 만나 앱을 죽일 수 있다. public void stopTimer() { mTask = new TimerTask() { @Override public void run() { mTimer = new Timer(); ....... }; mTimer = new Timer(); if(mTimer != null) { mTimer.schedule(mTask, 10000); ....} 이 경우에는 아래와 같은 방법으로 에러를 피할 수 있다. public StropTimerTask stopTimerTask; public void reSchedul..