2014-02-17 2 views
0

У меня есть много видов деятельности и AsyncTasks в моем приложении. Я хочу определить интерфейс с помощью метода, который принимает общую AsyncTask и логическую. Я реализую этот интерфейс во всех действиях и хочу вызвать метод интерфейса из AsyncTask.Как объявить функцию, которая принимает Generic AsyncTask в качестве аргумента

Как я могу объявить метод, который принимает все подклассы AsyncTask? Я хочу сделать это Generic, поэтому я могу использовать оператор instanceof, чтобы определить, какой asyncTask вызывает метод Override в активности. я пытался использовать:

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

но не допускается.

ответ

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

Вы можете объявить способ следующим образом:

public void onUpdate(AsyncTask<Object, Object, Object> task,boolean show); 
Смежные вопросы