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

실시간 DB업데이트 버그확인좀해주세요

0 추천
MyTimerCallBack = new TimerTask() {

   @Override
   public void run() { // timer task -> 타이머 이벤트 처리
    final Runnable timerAction = new Runnable() {
     @Override
     public void run() {

      UpdateText();

     }
    };

    current1.post(timerAction);
    current2.post(timerAction);
    current3.post(timerAction);
    volt1.post(timerAction);
    volt2.post(timerAction);
    volt3.post(timerAction);

   }
  };
  StartTimer(1);
 }

 private void StartTimer(long seconds) {
  final Timer timer = new Timer();
  timer.scheduleAtFixedRate(MyTimerCallBack, 0, seconds * 3000);
 }

 public void UpdateText() {

  StringBuilder sb = new StringBuilder();

  try {

   URL url = new URL("localhost/test/vc_check.php");

   HttpURLConnection conn = (HttpURLConnection) url.openConnection();

   if (conn != null) {

    conn.setConnectTimeout(10000);

    conn.setUseCaches(false);

    volt1.setText(String.valueOf(conn.getResponseCode()) + "\n"

    + String.valueOf(HttpURLConnection.HTTP_OK));

    if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {

     BufferedReader br = new BufferedReader(

     new InputStreamReader(conn.getInputStream()));

     while (true) {

      String line = br.readLine();

      if (line == null)

       break;

      sb.append(line + "\n");

     }

     br.close();

    } else {

     volt1.setText("http_not");

    }

    conn.disconnect();

   }

  } catch (Exception e) {

   volt1.setText(e.toString());
   volt2.setText(e.toString());
   volt3.setText(e.toString());
   current1.setText(e.toString());
   current2.setText(e.toString());
   current3.setText(e.toString());
  }

  String jsonString = sb.toString();

  try {

   String data1 = "";
   String data2 = "";
   String data3 = "";
   String data4 = "";
   String data5 = "";
   String data6 = "";

   JSONArray ja = new JSONArray(jsonString);

   /*for (int i = 0; i < ja.length(); i++) {

    JSONObject jo = ja.getJSONObject(i);

    // 결과물

    data1 += jo.getString("volt") + "V";
    data2 += jo.getString("current") + "A";

   }*/
   data1 = ja.getJSONObject(0).getString("volt");
   data2 = ja.getJSONObject(0).getString("current");
   data3 = ja.getJSONObject(1).getString("volt");
   data4 = ja.getJSONObject(1).getString("current");
   data5 = ja.getJSONObject(2).getString("volt");
   data6 = ja.getJSONObject(2).getString("current");

   // 결과 출력

   volt1.setText(data1);
   volt2.setText(data3);
   volt3.setText(data5);
   current1.setText(data2);
   current2.setText(data4);
   current3.setText(data6);

  } catch (JSONException e) {

   // TODO Auto-generated catch block

   volt1.setText(e.toString());
   volt2.setText(e.toString());
   volt3.setText(e.toString());
   current1.setText(e.toString());
   current2.setText(e.toString());
   current3.setText(e.toString());

  }

 }

3초마다 DB 업데이트 해주는건데 처음에 들어가면

org.json.jsonexception end of input at character 0  ,,,

뜨는데 다른페이지 넘어갔다가 다시오면 제대로 동작합니다

어떤문제가 있는거나요?

 

익명사용자 님이 2015년 6월 16일 질문
오류 로그를 올리세요                             .

1개의 답변

0 추천
오류로 봐서는 json 포맷 오류로 보입니다.  jsonStirng 을 로그로 찍어 본후 해당 문자열이 json 형태에 맞는지 확인 해 보심이..
익명사용자 님이 2015년 6월 17일 답변
...