Android - фоновая работа каждые несколько минут - PullRequest
1 голос
/ 07 июля 2011

Мне нужно написать приложение, которое будет выполнять фоновую работу каждые несколько минут. У меня вопрос, как я могу начать эту работу из сервиса. Нужно ли делать это, используя потоки и вычисляя время, используя некоторые системные утилиты, или, может быть, есть лучшее решение?

Ответы [ 3 ]

1 голос
/ 07 июля 2011

Вы можете использовать Handler и postDelayed метод:

Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable()
    public void run() {
       // your work
    }
}, minutes * 60 * 1000);

Если интервал достаточно большой, вы также можете рассмотреть возможность использования AlarmManager.

1 голос
/ 26 мая 2012

(кажется, не могу добавить комментарий, поэтому добавление в качестве ответа)

, поскольку эта задача будет выполняться непрерывно, я бы расширил пример Xion следующим образом:

Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable()
  public void run() {
     // your work
     //...
     handler.postDelayed(this, minutes * 60 * 1000); //this will schedule the task again
  }
}, minutes * 60 * 1000);
0 голосов
/ 07 июля 2011

Нет, вам не нужно делать с помощью потоков.Вы можете просто сделать это с помощью AlarmManager.Для справки смотрите эту ссылку, это поможет вам.http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/AlarmService.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...