주기적으로 서버에 접속하기 하는 어플을 만들려고 하는데요


책을 보면서 주먹 구구 식으로 만들었더니


에러는 없는데 핸들러가 작동을 안합니다.


에러 메세지는 없는데


The MeThod handlerMessage(Message) frome the type new Handler()[]  is


never usesd locally.


라는 느낌표만 뜹니다.


쓰레드 클래스의 선언 위치 때문에 그런거 같은데


쓰레드 클래스를 아예 밖에서 써주면  mThread = new BackThread(mHandler); 에서


에러가 납니다.


도통 어디서 무엇을 잘못 됐는지 감을 못잡겠네요


로그 값으로 확인해 보았더니 나머지는 다 잘 실행 되는데


handler만 동작을 안합니다.


package com.mystory;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

public class JHThreadTest extends Activity {
    /** Called when the activity is first created. */
    int test;
   
    EditText mResult;
    ImageView image;
    TextView number;
    BackThread mThread;
    String Result;
   
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
       
        image = (ImageView)findViewById(R.id.image01);
        number = (TextView)findViewById(R.id.number);
       
                mThread = new BackThread(mHandler);
                mThread.setDaemon(true);
                mThread.start();
               
       
    }
   
    Handler mHandler = new Handler(){
        public void handlerMessage( Message msg){
            Log.i("handler   : " ,Result );
            if(msg.what ==0){
                 if(Result.equals("park"))
                 {
                     image.setImageResource(R.drawable.park_car);
                     Log.i("Result if : " , Result);
                 }else if(Result.equals("empty"))
                 {
                     image.setImageResource(R.drawable.park_empty);
                     Log.i("Result else if : " , Result);
                 }
               
            }
        }
    };

    class BackThread extends Thread{
        int mBackValue = 0;
        Handler mHandler;
        BackThread(Handler handler){
            mHandler = handler;
        }
       
        public void run(){
            String Json = DownloadHtml("http://elec04.iptime.org/test02.json");
            Log.i("Thread Json : " , Json);
            while(true){
                try{
                    Message msg = Message.obtain(mHandler, 0, mBackValue,0);
                    mHandler.sendMessage(msg);
                   
                    JSONArray ja = new JSONArray(Json);
                    JSONObject order = ja.getJSONObject(1);
                    Result = order.getString("A01");
                   
                    Log.i("Thread result : " , Result);
//                     if(Result.equals("park"))
//                     {
//                         image.setImageResource(R.drawable.park_car);
//                         Log.i("Result if : " , Result);
//                     }else if(Result.equals("empty"))
//                     {
//                         image.setImageResource(R.drawable.park_empty);
//                         Log.i("Result else if : " , Result);
//                     }
                    
                } catch(JSONException e) {
                    Log.i("JsoneException : " , Result);   
                }
                try{Thread.sleep(1000);}catch(InterruptedException e){;}
            }   
       
        }
   
    String DownloadHtml(String addr){
          StringBuilder jsonHtml = new StringBuilder();
          try{
             // 연결 url 설정
             URL url = new URL("addr);
             // 커넥션 객체 생성
             HttpURLConnection conn = (HttpURLConnection)url.openConnection();
             // 연결되었으면.
            
             if(conn !=null){
                conn.setConnectTimeout(1000*60);
                conn.setUseCaches(false);
                // 연결되었음 코드가 리턴되면.
                if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){
                   BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "EUC-KR"));

                   for(;;){
                       // 웹상에 보여지는 텍스트를 라인단위로 읽어 저장. 
                       String line = br.readLine();
                       if(line == null) break;
                       // 저장된 텍스트 라인을 jsonHtml에 붙여넣음
                       jsonHtml.append(line + "\n");
                    }
                 br.close();
              }
               conn.disconnect();
            }
          } catch(Exception ex){
              ;
          }
          return jsonHtml.toString();
        }

    }
}