【发布时间】:2011-12-05 04:15:47
【问题描述】:
[已解决]
我正在尝试使用 AsyncTask 创建一个基本线程,如 Android API 文档中所示。但是,我在尝试执行最简单的线程时遇到了一个错误。
AsyncTask task = new AsyncTask<Void, Integer, Boolean>() {
@Override
protected Boolean doInBackground(Void... arg0) {
try {
Thread.sleep(6000);
System.out.println("DELAYED TEST TEST TEST");
}catch(Exception e) {
}
return true;
}
};
Logcat 入口:
E/AndroidRuntime(21215): FATAL EXCEPTION: AsyncTask #1
E/AndroidRuntime(21215): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime(21215): at android.os.AsyncTask$3.done(AsyncTask.java:200)
E/AndroidRuntime(21215): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
E/AndroidRuntime(21215): at java.util.concurrent.FutureTask.setException(FutureTask.java:125)
E/AndroidRuntime(21215): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
E/AndroidRuntime(21215): at java.util.concurrent.FutureTask.run(FutureTask.java:138)
E/AndroidRuntime(21215): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
E/AndroidRuntime(21215): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
E/AndroidRuntime(21215): at java.lang.Thread.run(Thread.java:1027)
E/AndroidRuntime(21215): Caused by: java.lang.ClassCastException: [Ljava.lang.Object;
E/AndroidRuntime(21215): at hlf.scenes.Intro$2.doInBackground(Intro.java:1)
E/AndroidRuntime(21215): at android.os.AsyncTask$2.call(AsyncTask.java:185)
E/AndroidRuntime(21215): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
E/AndroidRuntime(21215): ... 4 more
如果有人能帮我解决这个问题,我将不胜感激! 谢谢
修复:
AsyncTask<Void, Integer, Boolean> task = new AsyncTask<Void, Integer, Boolean>()
【问题讨论】:
-
试试这个..... AsyncTask
task = new AsyncTask () -
任务实例是在UI线程上创建的吗?
-
@kumar:我不这么认为。泛型类型未编译。
-
@kumar 解决了,非常感谢!
-
@YashwanthKumar 为什么这能解决问题?泛型类型参数不是像 njzk2 所说的那样在编译中持续存在的任何东西。
标签: android multithreading android-asynctask