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

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

Войти
Регистрация
Восстановить пароль
 
NOVICHOK2012
6 / 6 / 0
Регистрация: 13.04.2012
Сообщений: 99
#1

Не получается создать два AsyncTask - Программирование Android

25.08.2014, 18:28. Просмотров 467. Ответов 6
Метки нет (Все метки)

Всем привет.
Вот так я создаю первый Task:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class MyTimerTask extends AsyncTask<Void, Void, Void> {  
   private TextView text;  
   public MyTimerTask(TextView t) { text = t; }     
   protected Void doInBackground(Void... params) {
    while(true) {
     try { Thread.sleep(2500); } catch (InterruptedException e) { break; }
     publishProgress();
     if(isCancelled()) break;
    }
    return null;
   }
   protected void onProgressUpdate(Void... values) { 
  }
   }
Вот так вторую Task:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   public class MyTimerTask2 extends AsyncTask<Void, Void, Void> {
   private TextView text2;  
   public MyTimerTask2(TextView a) { text2 = a; } 
   protected Void doInBackground(Void... params) {
    while(true) {
     try { Thread.sleep(1000); } catch (InterruptedException e) { break; }
     publishProgress();
     if(isCancelled()) break;
    }
    return null;
   }
   protected void onProgressUpdate(Void... values) {
    }
  }
   }
В активити написал:
Java
1
2
MyTimerTask mytimertask;
MyTimerTask mytimertask2;
Первый Task вызываю так:
Java
1
2
   mytimertask = new MyTimerTask(o);
  mytimertask.execute();
Второй так:
Java
1
2
mytimertask2 = new MyTimerTask(alarm);
mytimertask2.execute();
И почему-то когда я нажимаю на кнопку и вызываю второй Task срабатывает первый Task, что не так?
Исходники AsyncTask взял из 2.3
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2014, 18:28     Не получается создать два AsyncTask
Посмотрите здесь:

Два http get запроса в одном AsyncTask - Программирование Android
Добрый день, при вызове двух последовательных http get запросов происходит следующая ситуация: первый запрос выполняется полностью ...

Не получается отцентровать два чекбокса по горизонтали - Программирование Android
Ставлю обычные теги на горизонтальную центровку, текст выравнивается, а сам квадратик остается сбоку. Как его сдвинуть вместе с текстом? ...

Не получается создать таймер - Программирование Android
Решил создать таймер для андроида и столкнулся с некоторыми проблемами. Приложение запускается но при активации таймера выдает ошибку. ...

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

Exception в AsyncTask - Программирование Android
Доброго всем. Проблема вот в чем: периодически во время выполнения одного из потоков в AsyncTask вылетает следующее: 04-21...

MainActivity AsyncTask - Программирование Android
Добрый вечер. Ребята тут небольшая проблема. Мне нужно Заполнить NavigatorDrawer (из базы). Почему когда я пытаюсь в...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
25.08.2014, 19:14     Не получается создать два AsyncTask #2
Java
1
2
MyTimerTask mytimertask;
MyTimerTask2 mytimertask2;
Java
1
2
mytimertask = new MyTimerTask(o);
mytimertask.execute();

Java
1
2
mytimertask2 = new MyTimerTask2(alarm);
mytimertask2.execute();
NOVICHOK2012
6 / 6 / 0
Регистрация: 13.04.2012
Сообщений: 99
25.08.2014, 22:42  [ТС]     Не получается создать два AsyncTask #3
Netscape, что-то никак не получается создать будильник, какое бы я время срабатывания mytimertask2 не ставил.
Вот так проверяю равны ли значение:
Java
1
2
3
4
5
6
protected void onProgressUpdate(Void... values) {
                if (a.getTime()==t.getTime()){
                    Toast.makeText(MainActivity.this, "Будильник сработал!", Toast.LENGTH_LONG).show();
                    Log.d(TAG, "Будильник сработал!");  
                }
        }
a,t это GregorianCalendar.
Получается, что одно число горит 2,5 с, а второй таймер срабатывает каждую 1 с, получается будильник полюбому должен сработать, не так ли?
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
25.08.2014, 23:08     Не получается создать два AsyncTask #4
Для будильников есть AlarmManager.
NOVICHOK2012
6 / 6 / 0
Регистрация: 13.04.2012
Сообщений: 99
26.08.2014, 16:18  [ТС]     Не получается создать два AsyncTask #5
Netscape, можно поподробнее с AlarmManager? Куда вот это писать
Java
1
2
3
4
if (a.getTime()==t.getTime()){
                    Toast.makeText(MainActivity.this, "Будильник сработал!", Toast.LENGTH_LONG).show();
                    Log.d(TAG, "Будильник сработал!");  
                }
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
26.08.2014, 22:14     Не получается создать два AsyncTask #6
NOVICHOK2012, http://startandroid.ru/ru/uroki/vse-...rmmanager.html
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2014, 15:19     Не получается создать два AsyncTask
Еще ссылки по теме:

Отмена AsyncTask - Программирование Android
Привет. Есть такой код: @Override protected Void doInBackground(Void... params) { try { Interpret(Source.get()); }...

Запуск нескольких AsyncTask - Программирование Android
Есть ListView там чекбоксы, при нажатии на чекбох запускается поток.. AsyncTaskWASAQ task = new AsyncTaskWASAQ(); task.execute(); ...

Абстрактное наследование от AsyncTask - Программирование Android
Нужно реализовать иерархию наследования от AsyncTask. Цель - переопределить метод. Как в Java реализуется шаблонное наследование ? ...

ArrayList не заполняется в AsyncTask - Программирование Android
Здравствуйте. В asyncTask есть такой код: String s = elements.get(0).text().split(&quot;: &quot;); Log.d(&quot;1&quot;,s); ...


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

Или воспользуйтесь поиском по форуму:
NOVICHOK2012
6 / 6 / 0
Регистрация: 13.04.2012
Сообщений: 99
27.08.2014, 15:19  [ТС]     Не получается создать два AsyncTask #7
Я правильно понимаю, что мне надо создать PendingIntent, который будет посылаться в AlarmManager нажатием на кнопку включения будильника? А AlarmManager каждую секунду должен будет проверить
Java
1
2
3
4
if (a.getTime()==t.getTime()){
                    Toast.makeText(MainActivity.this, "Будильник сработал!", Toast.LENGTH_LONG).show();
                    Log.d(TAG, "Будильник сработал!");  
                }
Yandex
Объявления
27.08.2014, 15:19     Не получается создать два AsyncTask
Ответ Создать тему
Опции темы

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