2015-01-26 5 views
1

나는 정기적으로 (30 초마다) 서버에서 데이터를 가져와야하는 Android 애플리케이션을 작성 중입니다. AlarmManager을 사용하여 이러한 작업을 예약하려고 생각했지만보기를 업데이트하는 콜백 함수를 전달할 수 있어야합니다. Intent은 콜백을 캡슐화 할 수 없기 때문에 "작업자 스레드"인 다른 솔루션을 찾기로했습니다. 여기서 문제는 서버에 대한 요청이 AsyncTask에서 수행되고 여기서 onPreExecuteonPostExecute이 Ui 스레드에서 실행되어야하므로 실제로이 방법을 사용할 수 없다는 것입니다.주기적으로 서버에서 데이터를 가져 오는 가장 좋은 방법

이 경우 가장 좋은 방법이 무엇인지 알려 주시면 감사하겠습니다.

+0

그러나 자체 스레드에서 실행되는 doInBackground. – anil

답변

2

Handler을 사용하십시오.

Handler mHandler; 
    public void useHandler() { 
    mHandler = new Handler(); 
    mHandler.postDelayed(mRunnable, 30000); 
    } 

    private Runnable mRunnable = new Runnable() { 

    @Override 
    public void run() { 
     Log.e("Handlers", "Call asynctask"); 
     /** Call your AsyncTask here **/ 
     mHandler.postDelayed(mRunnable, 30000); 
    } 
    }; 
관련 문제