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

[재업] 버튼클릭으로 실행시키던걸 앱키자마자 바로 실행시키기

0 추천
안녕하세요 ^^ 밑에 똑같은 글이 있는데 감사하게도 답변을 달아주셨지만 잘 안되서 다시 올려봅니다

 

메인액티비티에서 버튼을 누르면 실행되는 메서드가 있는데 이걸 그냥 앱키자마자 자동으로 실행되게 하고 싶습니다.  

 

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    ....    }

...

 public void insert(View view) {

        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();

            }

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

 

이렇게 되있는걸

 

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();

            }

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

그냥 insertToDatabase(regid)를 oncreate밑에 넣었는데 될줄알았는데 안되더라고요..;

어떻게 하면 되나요?ㅜㅜ
껄껄앱 (1,910 포인트) 님이 2016년 2월 17일 질문

1개의 답변

0 추천
 
채택된 답변
버튼에 해당하는 view 를 설정 한 이후

view.performClick(); 을 추가하세요
aucd29 (218,390 포인트) 님이 2016년 2월 17일 답변
껄껄앱님이 2016년 2월 18일 채택됨
죄송합니다 이해가 잘 안가네요 ㅠ; 제가 버튼을 아예 없앨거라서 버튼클릭시 실행되는 메소드를 앱이 실행되자마자 자동으로 실행되게 하려는건데
버튼에 해당하는 view 를 설정하라는 말씀이 이해가 안됩니다 ㅠ
아 버튼을 없앨 예정이라면은 이야기가 다릅니다.
버튼을 유지한체 진행 예정이라고 생각하고 설명 드린 것이구요

일단은 onProgress 에 대한 내용이 없어 정확한 파악이 불가하는데 asynctask 에 구현할 내용을 완성 한다음

해당 asynctask 에 execute 가 제대로 이루어졌는지 파악 해보세요
추가적으로 어떻게 구현중인지 내용이 정확히 없네요
public void insert(View view) {

        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);
    }


이렇게 되어 있습니다.

execute는 제대로 되있는거 같은데.. 뭐가 문제인가요 ?ㅠ
...