我正在做一些数据库操作,使用Loader,填充HashMap,然后使用这个HashMap填充TreeMap进行排序,但是当我尝试将这个TreeMap传递给我的AsyncTask时:
Sorted = new TreeMap<Date,String>(BD);
new MagicCall().execute(Sorted);
但是编译器给了我一个警告:类型安全:为varargs参数创建了一个通用的Map数组
这是我的AsyncTask声明:
private class MagicCall extends AsyncTask<Map<Date,String>, String, String>
任何标题?
答案 0 :(得分:2)
我通过解决方法解决了这个问题。 您可以按如下方式声明任务:
private class MagicCall extends AsyncTask<Void, String, String> {
// member
private Map<Date,String> arg = null;
// constructor
public MagicCall(final Map<Date,String> arg) {
this.arg = arg;
}
...
@Override
protected String doInBackground(final Void... args) {
// do stuff on this.arg instead of args
...
}
...
}
你可以这样称呼它:
new MagicCall(Sorted).execute();
这样,您可以通过构造函数而不是通过execute()方法传递任务参数。