게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
서버랑 DB 안드로이드를 연동해서 실시간처리를 하려고합니다.
게시물ID : programmer_19129짧은주소 복사하기
작성자 : 주기율표외워
추천 : 0
조회수 : 892회
댓글수 : 5개
등록시간 : 2016/11/27 01:45:08
옵션
  • 본인삭제금지
DB에 위도 경도 열이 존재하고 php를 통해서 안드로이드쪽으로 json형태로 위도 경도 값을 받아옵니다. 여기까지는 별문제없이 잘되고 있습니다...

근데 받아올때 DB에서 가장 마지막값만 읽어 오더라고요. 반대로 안드로이드에서 DB로 실시간으로 위도 경도값을 넘겨주는 작업도 해야하는데 스레드 반복을 어떻게 할지 감이 안잡힙니다 ..
package org.androidtown.location;

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Button;
import android.widget.EditText;

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

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


public class ParentActivity extends AppCompatActivity {


Button button;
EditText gpsinfo;
EditText txt;
phpDown task;
ArrayList<ListItem> listItem = new ArrayList<ListItem>();
ListItem Item;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_parent);
task = new phpDown();
gpsinfo = (EditText) findViewById(R.id.gpsinfo);
txt = (EditText) findViewById(R.id.editText3);
task.execute("http://gpsserver.iptime.org/load.php");
Button button = (Button) findViewById(R.id.button6);
} //oncreate

public class ListItem {

private String[] mData;

public ListItem(String[] data) {
mData = data;
}

public ListItem(String txt1, String txt2) {
mData = new String[100];
mData[0] = txt1;
mData[1] = txt2;
}

public String[] getData() {
return mData;
}

public String getData(int index) {
return mData[index];
}

public void setData(String[] data) {
mData = data;
}
}

private class phpDown extends AsyncTask<String, Integer, String> {


@Override
protected String doInBackground(String... urls) {

StringBuilder jsonHtml = new StringBuilder();
try {
// 연결 url 설정
URL url = new URL(urls[0]);
// 커넥션 객체 생성
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 연결되었으면.
if (conn != null) {
conn.setConnectTimeout(10000);
conn.setUseCaches(false);
// 연결되었음 코드가 리턴되면.
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
for (; ; ) {
// 웹상에 보여지는 텍스트를 라인단위로 읽어 저장.
String line = br.readLine();
if (line == null) break;
// 저장된 텍스트 라인을 jsonHtml에 붙여넣음
jsonHtml.append(line + "\n");
}
br.close();
}
conn.disconnect();
}
} catch (Exception ex) {
ex.printStackTrace();
}
return jsonHtml.toString();

}

protected void onPostExecute(final String str) {


// gpsinfo.setText(str);


String txt1;
String txt2;
try {

JSONObject root = new JSONObject(str);
JSONArray ja = root.getJSONArray("results");
for (int i = 0; i < ja.length(); i++) {
JSONObject jo = ja.getJSONObject(i);
txt1 = jo.getString("Latitude");
txt2 = jo.getString("Longitude");
listItem.add(new ListItem(txt1, txt2));
}
} catch (JSONException e) {
e.printStackTrace();
}

gpsinfo.setText(listItem.get(0).getData(0) + " " + listItem.get(0).getData(1));


} //onPostExcute


} //class main


} //Maii


doinBackground는 php에서 json형식으로 보내준 파일 읽어오는곳이고 onPostExecute 에서 레이아웃에 출력할수있게 짜진 코드인데요





전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호