С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
xbarmaglot
3 / 3 / 0
Регистрация: 06.10.2012
Сообщений: 248
1

Абстрактное наследование от AsyncTask

09.02.2014, 09:01. Просмотров 757. Ответов 8
Метки нет (Все метки)

Нужно реализовать иерархию наследования от AsyncTask.
Цель - переопределить метод.

Как в Java реализуется шаблонное наследование ?

необходимо оставить возможность пользователю задавать параметры AsyncTask<Params, Progress, Result>
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2014, 09:01
Ответы с готовыми решениями:

AsyncTask
Использую AsyncTasc class MyT extends AsyncTask&lt;Void, Void, Void&gt; { ...

AsyncTask и get()
Создаю асинхронный процесс, где в onPreExecute() запускаю анимированный...

AsyncTask
Здравствуйте, при использовании двух одинаковых методов получается разный...

AsyncTask
Привет. Знаю, что в AsyncTask doInBackground() обращатся к компонентам UI...

Работа с AsyncTask
Попробовал использовать AsyncTask и возник вопрос. У меня есть несколько ф-й,...

8
verylazy
Заблокирован
09.02.2014, 10:42 2
http://developer.android.com/reference/android/os/AsyncTask.html
на странице первый же листинг с кодом
0
xbarmaglot
3 / 3 / 0
Регистрация: 06.10.2012
Сообщений: 248
09.02.2014, 10:54  [ТС] 3
Этот листинг уже задает типы параметров. А я хочу их оставить шаблонными для наследованич
0
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
09.02.2014, 11:17 4
Цитата Сообщение от xbarmaglot Посмотреть сообщение
Этот листинг уже задает типы параметров. А я хочу их оставить шаблонными для наследованич
Может вот так тогда?
Java
1
2
3
abstract class MyAsyncTask<Params, Progress, Result> extends AsyncTask<Params, Progress, Result> { 
    
}
0
xbarmaglot
3 / 3 / 0
Регистрация: 06.10.2012
Сообщений: 248
09.02.2014, 11:26  [ТС] 5
похоже ближе к истине.
Как тогда определить doInBackground ?

Например, я хочу возвращать результат Boolean, но параметры задавать шаблонными
Java
1
2
3
4
5
6
7
public abstract class MyTask<Params, Progress> extends AsyncTask<Params, Progress, Boolean>
{
    @Override
    protected Boolean doInBackground(???)
        {
        }
}
0
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
09.02.2014, 11:43 6
Цитата Сообщение от xbarmaglot Посмотреть сообщение
Например, я хочу возвращать результат Boolean, но параметры задавать шаблонными
А у вас сейчас так и есть:
Ваш класс:
Java
1
2
3
abstract class MyTask<Params, Progress> extends AsyncTask<Params, Progress, Boolean> {
    
}
Использование класса:
Java
1
2
3
4
5
6
7
8
        MyTask<String, Integer> task = new MyTask<String, Integer>() {
            @Override
            protected Boolean doInBackground(String... params) {
                //TODO
                return true;
            }
        };
        task.execute("test","test2");
0
xbarmaglot
3 / 3 / 0
Регистрация: 06.10.2012
Сообщений: 248
09.02.2014, 11:49  [ТС] 7
Не совсем так. doInBackground я хочу переопределить в наследниках иерархии.
Я лишь хочу возвращать Boolean, но параметры оставить шаблонными.

То того, пока не будет создан экземпляр я не могу знать параметры.
А в Вашем примере создается уже экземпляр с известными параметрами.

Добавлено через 1 минуту
То есть мне нужно определение именно абстрактного класса
0
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
09.02.2014, 11:57 8
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
abstract class AbstractTask<T, U, R> extends AsyncTask<T, U, R> {
    
    @Override
    protected abstract R doInBackground(T... params);
    
}
    
class StringTask extends AbstractTask<String, String, String> {
 
    @Override
    protected String doInBackground(String... params) {
        return null;
    }
    
}
0
xbarmaglot
3 / 3 / 0
Регистрация: 06.10.2012
Сообщений: 248
09.02.2014, 12:03  [ТС] 9
Netscape, понятно. А если result определен, то
Java
1
2
3
4
5
6
abstract class AbstractTask<T, U> extends AsyncTask<T, U, Boolean> {
    
    @Override
    protected abstract Boolean doInBackground(T... params);
    
}
0
09.02.2014, 12:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2014, 12:03

AsyncTask ObjectAnimator
Добрый вечер. Прошу помочь мне. Пытаюсь написать карточную игру. В игре игрок...

AsyncTask+CheckBox
Здравствуйте, интересует вопрос нужно в функцию AsyncTask послать несколько...

Не работает AsyncTask
Не работает AsyncTask , вот код: private void registerInBackground() { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru