Как создать спиннер при поиске URL? - PullRequest
0 голосов
/ 01 августа 2011

Я бы хотел, чтобы пользователь нажал кнопку.

Когда вызывается onClickListener для кнопки, я хотел бы отображать счетчик до тех пор, пока веб-страница не будет извлечена.

Я не хочу использовать AsyncTask, потому что его можно запустить только один рази более чем вероятно, что пользователь будет нажимать кнопку более одного раза после получения первых результатов URL.

Так как же мне поступить с этим onClickListener?

findIT.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        item = game.getText().toString();
        getUserPreference();
        itemLookup.loadUrl(url);
    }
});

1 Ответ

2 голосов
/ 01 августа 2011

Вы все еще можете использовать AsyncTask<>, вам просто нужно каждый раз создавать новый.

public void onClick(View v) {
    new DoWhateverTask().execute();
}

В противном случае вы можете сделать это самостоятельно, используя Handler s. Предполагая, что вы уже определили Handler s для пользовательского интерфейса и рабочего потока:

public void onClick(View v) {
    showProgress();
    workerThreadHandler.Post(new Runnable() {
        public void run() {
            doNetworkStuff();  // Which will post progress to the UI thread if needed.
            mainThreadHandler.Post(new Runnable() {
                public void run() {
                    hideProgress();
                }
            });
        }
    });
}

Лично я считаю, что AsyncTask - лучшее решение.

...