Как вызвать AyncTask с прослушивателем из TimerTask в Android?

#android #multithreading #android-asynctask #timertask

#Android #многопоточность #android-asynctask #timertask

Вопрос:

Я должен вызвать асинхронную задачу с прослушивателем из TimerTask каждые 1,5 секунды.Когда я попытался это сделать, я получаю исключение «java.lang.RuntimeException: не удается создать обработчик внутри потока, который не вызывал Looper.prepare().». Пожалуйста, помогите нам решить эту проблему.

Ниже приведен фрагмент кода, который я использую..

      Timer t = new Timer();     
 TimerTask scanTask = new TimerTask()
 {
    @Override
    public void run()
        {
        new BgTask((BgTaskListener)this).execute("","currentState");
    }

};

t.schedule(scanTask, 1500, 1500);
  

Здесь BgTask идентифицирует класс AsyncTask.

Ответ №1:

если вы находитесь в контексте activity, то это должно сработать

     runOnUiThread(new Runnable()
    {           
        @Override
        public void run()
        {
            new BgTask((BgTaskListener)this).execute("","currentState");
        }
    });