Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
xbarmaglot
3 / 3 / 0
Регистрация: 06.10.2012
Сообщений: 245
#1

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

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

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

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

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

Завершение потока AsyncTask Android
Android Работа с AsyncTask
AsyncTask и чтение XML Android
Android Свой listview с AsyncTask
Android FATAL EXCEPTION: AsyncTask #3
Android Отмена AsyncTask
Android Ожидание завершения AsyncTask
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
verylazy
Заблокирован
09.02.2014, 10:42     Абстрактное наследование от AsyncTask #2
http://developer.android.com/referen...AsyncTask.html
на странице первый же листинг с кодом
xbarmaglot
3 / 3 / 0
Регистрация: 06.10.2012
Сообщений: 245
09.02.2014, 10:54  [ТС]     Абстрактное наследование от AsyncTask #3
Этот листинг уже задает типы параметров. А я хочу их оставить шаблонными для наследованич
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
09.02.2014, 11:17     Абстрактное наследование от AsyncTask #4
Цитата Сообщение от xbarmaglot Посмотреть сообщение
Этот листинг уже задает типы параметров. А я хочу их оставить шаблонными для наследованич
Может вот так тогда?
Java
1
2
3
abstract class MyAsyncTask<Params, Progress, Result> extends AsyncTask<Params, Progress, Result> { 
    
}
xbarmaglot
3 / 3 / 0
Регистрация: 06.10.2012
Сообщений: 245
09.02.2014, 11:26  [ТС]     Абстрактное наследование от AsyncTask #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(???)
        {
        }
}
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
09.02.2014, 11:43     Абстрактное наследование от AsyncTask #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");
xbarmaglot
3 / 3 / 0
Регистрация: 06.10.2012
Сообщений: 245
09.02.2014, 11:49  [ТС]     Абстрактное наследование от AsyncTask #7
Не совсем так. doInBackground я хочу переопределить в наследниках иерархии.
Я лишь хочу возвращать Boolean, но параметры оставить шаблонными.

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

Добавлено через 1 минуту
То есть мне нужно определение именно абстрактного класса
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
09.02.2014, 11:57     Абстрактное наследование от AsyncTask #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;
    }
    
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2014, 12:03     Абстрактное наследование от AsyncTask
Еще ссылки по теме:

Заполнение ListView в AsyncTask Android
ArrayList не заполняется в AsyncTask Android
Android AsyncTask в Fragment и viewPager
Android Работа с потоками (AsyncTask)
Android Не работает AsyncTask

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

Или воспользуйтесь поиском по форуму:
xbarmaglot
3 / 3 / 0
Регистрация: 06.10.2012
Сообщений: 245
09.02.2014, 12:03  [ТС]     Абстрактное наследование от AsyncTask #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);
    
}
Yandex
Объявления
09.02.2014, 12:03     Абстрактное наследование от AsyncTask
Ответ Создать тему
Опции темы

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