запуск метода в цикле - PullRequest
       24

запуск метода в цикле

0 голосов
/ 03 ноября 2018

Я пишу свое первое приложение в Android Studio. У меня есть метод, который перемещает изображение в одном из заданий, и я просто хочу, чтобы он работал постоянно. Единственное, что я знаю, как это сделать, - запустить его, создав кнопку и щелкнув по ней, но я не могу найти решение, которое бы работало для его запуска без кнопки ?

Вот метод, которым я хочу воспользоваться:

    public void ruchIceberg(){
    iceberg = (ImageView)findViewById(R.id.imageView);

    if(iceberg.getX()<=-iceberg.getWidth()/2){
        setIceberg(iceberg);
    }
    setIceberg(iceberg,60);
}

1 Ответ

0 голосов
/ 03 ноября 2018

Хорошо, теперь я немного заржавел с Android, но ... Я обычно использую метод Handler.postDelayed() как таковой:

  1. Запланировать запуск, когда вы хотите запустить задачу

  2. В теле Runnable запланируйте еще один запуск (при необходимости).

Пример кода:

//In your Activity.java
private Handler timerHandler = new Handler();
private boolean shouldRun = true;
private Runnable timerRunnable = new Runnable() {
    @Override
    public void run() {
        if (shouldRun) {
            /* Put your code here */
            //run again after 200 milliseconds (1/5 sec)
            timerHandler.postDelayed(this, 200);
        }
    }
};

//In this example, the timer is started when the activity is loaded, but this need not to be the case
@Override
public void onResume() {
    super.onResume();
    /* ... */
    timerHandler.postDelayed(timerRunnable, 0);
}

//Stop task when the user quits the activity
@Override
public void onPause() {
    super.onPause();
    /* ... */
    shouldRun = false;
    timerHandler.removeCallbacksAndMessages(timerRunnable);
}
...