С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Last_Night
20 / 20 / 8
Регистрация: 02.10.2012
Сообщений: 124
1

Таймер для Android

21.09.2013, 21:31. Просмотров 1469. Ответов 3
Метки нет (Все метки)

есть функция которую необходимо вызывать через каждые 60 сек, пока приложение находится в фокусе
как узнать что приложение в фокусе? (может быть вызывать функцию с таймером из переопределённого метода onResume?)
как создать такой таймер?
Java
1
2
3
4
5
6
7
 javax.swing.Timer timer = new javax.swing.Timer( 100, new ActionListener()
  {
    public void actionPerformed(ActionEvent e)
    {
    //Do work!
    }
  } );
Посоветуйте как лучше реализовать это
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2013, 21:31
Ответы с готовыми решениями:

Как сделать таймер для игры в Android?
Всем привет. Решил освоить написание приложений под андроид, до этого писал на...

Таймер Android
Всем привет. У меня вот такая проблема, что криво работают пауза и...

Таймер Android Studio
Не могу сделать кнопку возобновления. Помогите пожалуйста. package...

Таймер, AlarmManager и Service на Android
Добрый вечер. Я уже создавал тем(ы) про таймер. И мне очень здорово помогли...

Android Studio таймер, картинка, как?
Добрый день. 1) Как сделать так что бы TextView менялся каждую секунду? 2)...

3
MegaSinner
98 / 94 / 9
Регистрация: 09.04.2010
Сообщений: 746
21.09.2013, 21:39 2
Last_Night.
Вызывается при сворачивании приложения(нажатии HOME):
Java
1
2
3
4
    protected void onPause() {
        Toast.makeText(this, "onPause()", Toast.LENGTH_LONG).show();
        super.onPause();
    }
Вызывается при восстановлении приложения:
Java
1
2
3
4
5
    @Override
    protected void onRestart() {
        super.onRestart();
        Toast.makeText(this, "onRestart()", Toast.LENGTH_LONG).show();
    }
Вызывается при восстановлении приложения, а также при первом запуске:
Java
1
2
3
    protected void onStart() {
        super.onStart();
}
Таймер:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    private class Watch extends AsyncTask<Void, Integer, Void> {
        private Handler mHandler = new Handler(Looper.getMainLooper());
        protected Void doInBackground(Void... urls) {
            while (!exit)
            {
            publishProgress();
            try{
                Thread.sleep(60000);
            }catch (Exception xx){
                xx.toString();
            }
            }
            return  null;
        }
        @Override
        protected void onProgressUpdate(Integer... values) {
            //super.onProgressUpdate(values);    //To change body of overridden methods use File | Settings | File Templates.
            Func();//функция, которую нужно вызвать
        }
Вызов:
Java
1
new  Watch().execute();
Таймер CPU жрать не будет, поэтому можешь его запустить при старте,
а внутри Watch(или Func) проверяй состояние приложения..
Приятного кодинга!
1
Last_Night
20 / 20 / 8
Регистрация: 02.10.2012
Сообщений: 124
21.09.2013, 23:33  [ТС] 3
Цитата Сообщение от MegaSinner Посмотреть сообщение
Last_Night.
Вызывается при сворачивании приложения(нажатии HOME):
Java
1
2
3
4
    protected void onPause() {
        Toast.makeText(this, "onPause()", Toast.LENGTH_LONG).show();
        super.onPause();
    }
Вызывается при восстановлении приложения:
Java
1
2
3
4
5
    @Override
    protected void onRestart() {
        super.onRestart();
        Toast.makeText(this, "onRestart()", Toast.LENGTH_LONG).show();
    }
Вызывается при восстановлении приложения, а также при первом запуске:
Java
1
2
3
    protected void onStart() {
        super.onStart();
}
Таймер:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    private class Watch extends AsyncTask<Void, Integer, Void> {
        private Handler mHandler = new Handler(Looper.getMainLooper());
        protected Void doInBackground(Void... urls) {
            while (!exit)
            {
            publishProgress();
            try{
                Thread.sleep(60000);
            }catch (Exception xx){
                xx.toString();
            }
            }
            return  null;
        }
        @Override
        protected void onProgressUpdate(Integer... values) {
            //super.onProgressUpdate(values);    //To change body of overridden methods use File | Settings | File Templates.
            Func();//функция, которую нужно вызвать
        }
Вызов:
Java
1
new  Watch().execute();
Таймер CPU жрать не будет, поэтому можешь его запустить при старте,
а внутри Watch(или Func) проверяй состояние приложения..
Приятного кодинга!
Спасибо,а почему не использовать обычный таймер?
0
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
21.09.2013, 23:50 4
Java
1
2
3
4
5
6
7
8
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
   @Override
   public void run() {
      foobar();
      handler.postDelayed(this, 60000);
   }
};
Java
1
2
3
4
protected void onResume() {
        super.onResume();
        handler.postDelayed(runnable, 60000);
    }
Java
1
2
3
4
protected void onPause() {
        super.onPause();
        handler.removeCallback(runnable);
    }
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2013, 23:50

Выбор мощного android смартфона до 10 рублей, для тестирования проектов Android Studio, что посоветуете?
Какую фирму посоветуете?

Можно ли написать веб сервер на Java для клиента на Android, имея под рукой только телефон на Android?
Уважаемые гуру программирования, если можно, пожалуйста, напишите поподробнее-...

Таймер на 10 сек для Activity
Как сделать так,чтобы PreLoadActivity зависла на 10 секунд,а потом загрузилось...


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

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

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