Вызывать конкретный метод через регулярные промежутки времени - PullRequest
7 голосов
/ 06 января 2011

В моем приложении для Android я хочу вызывать определенный метод через регулярные промежутки времени, т.е. "через каждые 5 секунд" ... как я могу это сделать ...?

Ответы [ 2 ]

15 голосов
/ 06 января 2011

Вы можете использовать Таймер для выполнения метода с фиксированным периодом.

Вот пример кода:

final long period = 0;
new Timer().schedule(new TimerTask() {
    @Override
    public void run() {
        // do your task here
    }
}, 0, period);
11 голосов
/ 08 июля 2013

Эта ссылка выше протестирована и отлично работает. Это код для вызова какого-либо метода каждую секунду. Вы можете изменить 1000 (= 1 секунду) в любое время (например, 3 секунды = 3000)

public class myActivity extends Activity {

private Timer myTimer;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);

    myTimer = new Timer();
    myTimer.schedule(new TimerTask() {          
        @Override
        public void run() {
            TimerMethod();
        }

    }, 0, 1000);
}

private void TimerMethod()
{
    //This method is called directly by the timer
    //and runs in the same thread as the timer.

    //We call the method that will work with the UI
    //through the runOnUiThread method.
    this.runOnUiThread(Timer_Tick);
}


private Runnable Timer_Tick = new Runnable() {
    public void run() {

    //This method runs in the same thread as the UI.               

    //Do something to the UI thread here

    }
};
}
...