본문 바로가기
Android

error: Can't create handler inside thread that has not called Looper.prepare()

by 캡틴노랑이 2019. 9. 28.
반응형

Tread를 사용하다 보면 다음과 같은 오류가 발생함.

 

Can't create handler inside thread that has not called Looper.prepare()

 

이때 아래 코드를 사용하면 됨.

 

참조해야될 라이브러리

import android.os.Handler;
import android.os.Looper;

 

1
2
3
4
5
6
7
8
Handler mHandler = new Handler(Looper.getMainLooper());
mHandler.postDelayed(new Runnable() {
  @Override
  public void run() {
      // code
 
  }
}, 0);

Timer에서의 사용 예

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
TimerTask timerTask = new TimerTask() {
  @Override
  public void run() {
      Handler mHandler = new Handler(Looper.getMainLooper());
      mHandler.postDelayed(new Runnable() {
          @Override
          public void run() {
              double latitude = "";
              double longitude = "";
 
              gps = new Gps();             
               
                latitude = gps.getLatitude();
                longitude = gps.getLongitude();                                            
              SaveLocation(phoneNumber, rLatitude, rLongitude);
          }
      }, 0);
  }
};
 
Timer timer = new Timer();
timer.schedule(timerTask, 5, 10000);

참고 사이트

https://altongmon.tistory.com/7
https://stackoverflow.com/questions/11359930/android-cant-create-handler-inside-thread-that-has-not-called-looper-prepare

 

반응형

'Android' 카테고리의 다른 글

error: cannot resolve constructor  (0) 2019.10.01
Toolbar  (0) 2019.09.30
폰의 전화번호 조회  (0) 2019.09.26
Android Exception Message  (0) 2019.09.05
Activity 간 이동 후에 이전 Activity로 되돌아 갈 때  (0) 2019.09.05