Экземпляр Android AsyncTask или класс - PullRequest
1 голос
/ 20 июня 2011

Я создаю программу, которая, когда пользователь нажимает кнопку, вызывает асинхронную задачу в режиме onclick.Но каждый раз, когда пользователь нажимает кнопку, текст меняется ... Как я могу реализовать то, что я могу вызвать, просто чтобы использовать асинхронный метод.

Вот пример того, что я имею в виду

public void Talk(){     

   text1.setText("Welcome what is your name?");

   respond.setOnClickListener(new View.OnClickListener() {

      @Override
      public void onClick(View v) {
         name = edit.getText().toString();

         new AsyncTask<Void, Integer, Void>(){
            @Override
            protected Void doInBackground(Void... arg0) {
               try {                 
                  Thread.sleep(850);             
               } catch (InterruptedException e) {                         
                  e.printStackTrace();             
               }            

               return null;
            }

            @Override         
            protected void onPostExecute(Void result) {             
               text1.setText("Nice to meet you "+name);
               dismissDialog(typeBar);
            }

            @Override        
            protected void onPreExecute() { 
               typeBar = 0;
               showDialog(typeBar);
            }       
         }.execute((Void)null);     
      }
   });
}

Итак, как вы можете видеть в любое время, когда пользователь нажимает кнопку, текст меняется.Определенно будет утомительно вводить метод ayncTask КАЖДЫЙ раз, когда нажимается кнопка.Кто-нибудь знает, как я могу это сделать?

1 Ответ

1 голос
/ 05 сентября 2011

Я просто проигнорирую, почему вы используете AsyncTask для всего, что вы делаете.Не используйте встроенный класс.Создайте частный класс в своей Деятельности:

 private class MyAsyncTask extends AsyncTask<String, Void, Void> 

и используйте его повторно, например:

MyAsyncTask.execute("Whatever")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...