Как правильно использовать wait () и notify () в Runnable внутри Handler? - PullRequest
0 голосов
/ 30 января 2019

Я нашел какой-то похожий вопрос о моей проблеме пару часов назад, но пока не нашел,

Я хочу загрузить данные, используя Service с Handler и Runnable, ноЯ столкнулся с проблемой, что handler.postDelayed(myRunnable, interval) перезапускается, когда код блока внутри run() еще не закончен, все, что я знаю, это использовать wait() and notify(), но я не знаю, куда мне положить эти methods

мой сервисный код выглядит так:

public class ServiceUploadData extends Service {
  Handler handler = new Handler();
  private Runnable periodicUpdate = new Runnable() {
    @Override
    public void run() {
      Log.v(TAG, "Service Upload Data Running Now");
      //check localDB and send the data if exist
      handler.postDelayed(this, 1000);
    }
  };

  @Override
  public int onStartCommand(Intent intent, int flags, int startId)
  {
    Log.v(TAG, "onStartCommand");
    context = this;
    handler.post(periodicUpdate);
    return START_STICKY;
  }
  //any @Override
}

кто-нибудь может мне помочь?

...