마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

로그인 관련 질문입니다.

0 추천

아래는 onCreate()안에다 구현했구요.

메인스레드서 직접 네트워크 연동은 정책에 위배되지만 이렇게 러너블객체에 

 감싸서 보내면 괜찮지 않나요? 이렇게 해도 정상적인 작동이 안되네요.

반드시 

onCreate()아래에 

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
                .detectDiskReads()
                .detectDiskWrites()
                .detectNetwork()
                .penaltyLog().build());

이걸 넣어줘야 정상적인 작동이 됩니다.

제가 뭘 잘못했을까요? ㅠㅠ 

 //로그인
        btn_login.setOnClickListener(new View.OnClickListener(){
             @Override
             public void onClick(View v) {
                 str_id = edit_id.getText().toString();
                 str_pw = edit_pw.getText().toString();
               
                 mHandler.postDelayed(new Runnable() {
                     @Override
                     public void run() {
                       
 login_HttpPost(LOGIN_URL);

                     }
                 }, 0);

             }
         }
        );

엔조이AD (2,610 포인트) 님이 2017년 6월 13일 질문

1개의 답변

+1 추천

handler 생성 시 들어가는 looper가 main  Thread인 듯 합니다.

 

아래 코드와 같이 HandlerThread 를 별도로 생성하여 이 Thread의 Lopper를 Handler 생성시 넣어주세요.

 

HandlerThread t = new HandlerThread("My Handler Thread");

 t.start(); 

handler = new Handler(t.getLooper());

 t.quit(); // 다 쓰고 종료 시  호출

 

http://itmining.tistory.com/5

익명사용자 님이 2017년 6월 13일 답변
...