【发布时间】:2021-06-25 08:48:54
【问题描述】:
所以,我正在尝试运行最简单的 AsyncTask:它不接受参数,它只是运行一个函数,获取结果字符串并显示 is。无论我尝试什么,我都会收到此错误:
java.lang.ClassCastException: java.lang.Object[] cannot be cast to java.lang.Void[] at (...)$AsyncTaskRunner.doInBackground
异步任务:
private class AsyncTaskRunner extends AsyncTask<Void, Void, String> {
@Override
protected void onPreExecute() {
resultText.setText("");
progressBar.setVisibility(View.VISIBLE);
}
@Override
protected String doInBackground(Void... params) {
return "test";
}
@Override
protected void onPostExecute(String result) {
progressBar.setVisibility(View.GONE);
resultText.setText(result);
}
}
这就是我所说的:
buttonCalculate.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (AsyncTaskRunner != null) {
AsyncTaskRunner.cancel(true);
}
AsyncTaskRunner = new AsyncTaskRunner();
AsyncTaskRunner.execute();
}
});
我在这里做错了什么?
【问题讨论】:
-
更改:
AsyncTaskRunner为AsyncTaskRunner<Void, Void, String> -
喜欢
AsyncTaskRunner = new AsyncTaskRunner<Void, Void, String>();?同样的问题。 -
这样:
AsyncTaskRunner<Void, Void, String> =
标签: java android android-asynctask