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

[재업] 온클릭 메서드 내용을 앱 실행되자마자 실행시키기 위한 코드

0 추천
public void insert(View v){

    insertToDatabase(regid);
}

 

 

private void insertToDatabase(String regid){

    class InsertData extends AsyncTask<String, Void, String>{
        ProgressDialog loading;

 

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            loading = ProgressDialog.show(MainActivity.this, "Please Wait", null, true, true);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            loading.dismiss();

        }

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

            try{
                String regid = (String)params[0];

                String link="http://제 아이피/insert.php";
                String data  = URLEncoder.encode("regid", "UTF-8") + "=" + URLEncoder.encode(regid, "UTF-8");

                URL url = new URL(link);
                URLConnection conn = url.openConnection();

                conn.setDoOutput(true);
                OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());

                wr.write( data );
                wr.flush();

                BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));

                StringBuilder sb = new StringBuilder();
                String line = null;

                // Read Server Response
                while((line = reader.readLine()) != null)
                {
                    sb.append(line);
                    break;
                }
                return sb.toString();
            }
            catch(Exception e){
                return new String("Exception: " + e.getMessage());
            }

        }
    }

    InsertData task = new InsertData();
    task.execute(regid);
}

이렇게 되있는걸
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    insertToDatabase(regid); }

(버튼클릭 메서드 삭제
밑에 코드는 변화가 없습니다)

private void insertToDatabase(String regid){

    class InsertData extends AsyncTask<String, Void, String>{
        ProgressDialog loading;

 

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            loading = ProgressDialog.show(MainActivity.this, "Please Wait", null, true, true);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            loading.dismiss();

        }

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

            try{
                String regid = (String)params[0];

                String link="http://제 아이피/insert.php";
                String data  = URLEncoder.encode("regid", "UTF-8") + "=" + URLEncoder.encode(regid, "UTF-8");

                URL url = new URL(link);
                URLConnection conn = url.openConnection();

                conn.setDoOutput(true);
                OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());

                wr.write( data );
                wr.flush();

                BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));

                StringBuilder sb = new StringBuilder();
                String line = null;

                // Read Server Response
                while((line = reader.readLine()) != null)
                {
                    sb.append(line);
                    break;
                }
                return sb.toString();
            }
            catch(Exception e){
                return new String("Exception: " + e.getMessage());
            }

        }
    }

    InsertData task = new InsertData();
    task.execute(regid);
}

대체 뭐가 문제죠?ㅠㅠ
껄껄앱 (1,910 포인트) 님이 2016년 2월 18일 질문

1개의 답변

0 추천
 
채택된 답변

아직도 문제를 해결 못하셨군요..

문제를 좀더 자세하게 풀어서 올리셔야 할거같은데요..

일단 디버그를 단계별로 걸어서 테스트를 해보세요.

onCreate에 들어오는지

 insertToDatabase 메소드에 들어오는지

regid값이 들어있는지

task 내부에도 디버그를 걸어서 들어오는지..

그냥 그렇게 올리시면 어디가 안되는건지 알수가 없네요

캬옹이 (37,920 포인트) 님이 2016년 2월 18일 답변
껄껄앱님이 2016년 2월 18일 채택됨
허허허허ㅓ허허허허허허ㅓ 순서가 문제였네요.. regid 를 생성하고 나서 insert를 넣어야 했거늘...하하하하하ㅏ핳 감사합니다 ^^
...