Как заставить функцию ждать завершения другой функции sh, выполняемой внутри JobService - PullRequest
0 голосов
/ 10 июля 2020

У меня есть JobService, который должен получить местоположение и отправить его в веб-службу, проблема в том, что моя функция sendLocation () не ждет, пока getLocation () завершит sh, и поэтому она не отправляет никаких data, я знаю, что getLocation () работает, поскольку я уже установил некоторые теги, но к тому времени, когда это будет сделано, sendLocation () уже начал выполняться.

мой onStartJob выглядит так

    public boolean onStartJob(JobParameters params) {
        doBackgroundWork(params);
        return true;
    }

и мой doBackgroundWork () вот так

private void doBackgroundWork(final JobParameters params) {
        new Thread(new Runnable() {

            @Override
            public void run() {

                getLocation();
                sendLocation();

                jobFinished(params, false);
            }
        }).start();
}

Я уже пытался поместить getLocation () вне doBackgroundWork () и внутри onStartJob (), вот так

    public boolean onStartJob(JobParameters params) {
        getLocation();
        doBackgroundWork(params);
        return true;
    }

, но результат в таком же поведении.

Что я могу сделать?

...