Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.16.83.150] |
|
Сообщ.
#1
,
|
|
|
Привет, уважаемые форумчане.
Разрабатываю приложение для Android. Есть сервис, который должен периодически выполнять опрпеделенное действие (отправка данных на сервер) Для этого в сервисе запускаю метод scheduleAtFixedRate у Timer Сервис стартует нормально, но через некоторое время случается так, что задания выполняются не согласно таймеру, а форсировано. То есть, необходимо его выполнить раз, например, в 10 минут, а происходит так, что на протяжении часа приложение молчит, а затем выполняет такс сразу 10 раз. public class MyService extends Service { public static final long NOTIFY_INTERVAL = 10 * 1000 * 60; // 1 minutes private Handler mHandler = new Handler(); private Timer mTimer = null; @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { // cancel if already existed if(mTimer != null) { mTimer.cancel(); } else { // recreate new mTimer = new Timer(); } // schedule task mTimer.scheduleAtFixedRate(new MyTimerTask(), 0, NOTIFY_INTERVAL); instance = this; } @Override public void onStart(Intent intent, int startId) { super.onStart(intent, startId); } private class MyTimerTask extends TimerTask { @Override public void run() { mHandler.post(new Runnable() { @Override public void run() { // my sheduled task here } }); } } } кто нибудь сталвивался с подобной проблеммой? Или это пробеммы с конкретным аппаратом? |
Сообщ.
#2
,
|
|
|
с AlarmManager вместо таймера не пробовал?
|
Сообщ.
#3
,
|
|
|
Спасибо. Ага, днем смотрел про него (и еще про ScheduledExecutorService). Сейчас добрался до исходников. Попробую.
|
Сообщ.
#4
,
|
|
|
AlarmManager заработал очень четко. С точностью до нескольких секунд. Отработал всю ночь без каких-либо фокусов. Так что спасибо
Добавлено но что с scheduleAtFixedRate не понятно. |