我正在编写一个程序,当用户单击按钮时,将在onclick中调用asynctask。但是,每当用户单击按钮时,文本都会更改...我如何实现一些我可以调用的东西,以利用异步方法。
这是我的意思的一个例子
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方法肯定很麻烦。有人知道我可以这样做吗?
最佳答案
我只是忽略为什么您在使用AsyncTask进行任何操作。不要使用内联类。在您的活动中创建一个私人班级:
private class MyAsyncTask extends AsyncTask<String, Void, Void>
并重新使用它,例如:
MyAsyncTask.execute("Whatever")
关于android - Android AsyncTask实例或类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6416366/