AsyncTask没有零参数构造函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AsyncTask没有零参数构造函数相关的知识,希望对你有一定的参考价值。
假设我有一个名为UpdateInterfaceStatusesTask的android AsyncTask:
private class UpdateInterfaceStatusesTask extends AsyncTask<Object, Object, Object> {
public UpdateInterfaceStatusesTask() {
;
}
protected Object doInBackground(Object... params) {
View header = ((NavigationView) findViewById(R.id.nav_view)).getHeaderView(0);
((TextView) header.findViewById(R.id.nav_head_status)).setText(ServerThread.getInstance().isInterrupted() ? "Offline" : "Online");
return null;
}
@Override protected void onPostExecute(Object param) {
;
}
}
我想以编程方式创建它的新实例:
public void createNewInstance(Class<? extends AsyncTask<?, ?, ?>> clazz) {
try {
clazz.newInstance().execute();
} catch (Exception x) {
x.printStackTrace();
}
}
我收到以下错误:
W/System.err: java.lang.InstantiationException: java.lang.Class<nl.hypothermic.offthegrid.ChatActivity$UpdateInterfaceStatusesTask> has no zero argument constructor
W/System.err: at java.lang.Class.newInstance(Native Method)
W/System.err: at nl.hypothermic.offthegrid.tasks.TaskScheduler$1.run(TaskScheduler.java:27)
W/System.err: at android.os.Handler.handleCallback(Handler.java:790)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err: at android.os.Looper.loop(Looper.java:164)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6494)
W/System.err: at java.lang.reflect.Method.invoke(Native Method)
W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
有人有同样的问题吗?
答案
我猜你的私有类实际上是一个嵌套类,你需要使它成为静态才能使用0参数构造函数。否则,始终至少有一个参数(总是第一个),它是包含类的实例。
以上是关于AsyncTask没有零参数构造函数的主要内容,如果未能解决你的问题,请参考以下文章
InstantiationException:没有零参数构造函数?
匿名 AsyncTask 中的构造函数,例如“new AsyncTask<Exercise,Void,Void>()”?
超类 'Bloc<xxx, xxx>' 在 dart 中没有零参数构造函数
Scala 数据集映射失败并出现异常没有为零实际参数找到适用的构造函数/方法
Xamarin Android java.lang.InstantiationException:java.lang.Class 没有零参数构造函数