如何声明接受Generic AsyncTask作为参数的函数

时间:2014-02-17 10:48:07

标签: android android-asynctask instanceof

我的应用程序中有很多活动和AsyncTasks。我想用接受Generic AsyncTask和boolean的方法定义一个接口。我将在所有活动中实现该接口,并希望从AsyncTask调用Interface的方法。

我应该如何声明接受AsyncTask的所有子类的方法?我想把它设为Generic所以我可以使用instanceof运算符来确定哪个asyncTask在activity中调用了Override方法。 我试着用:

public onUpdate(AsyncTask<Params, Progress, Result> task,boolean show);

但不允许。

2 个答案:

答案 0 :(得分:1)

您可以这样声明:

public void onUpdate(AsyncTask<?, ?, ?> task, boolean show) {

}

然后,您可以通过扩展AsyncTask

来使用它
private class SomeTask extends AsyncTask<String, Integer, Long> {

    @Override
    protected Long doInBackground(String... params) {
        // TODO Auto-generated method stub
        return null;
    }

}

并调用您的方法:

onUpdate(new SomeTask(), true);

答案 1 :(得分:1)

您可以按如下方式声明方法......

public void onUpdate(AsyncTask<Object, Object, Object> task,boolean show);