안녕하세요.

앱에서 주기적으로 10초에 한번씩 변경된 데이터가 있으면 서버로 HTTP통신하는 부분을 개발중 입니다.

AlarmManager 를 사용해서 10초에 한번씩 BroadcastReceiver 의 onReceive 함수를 호출하는 부분은 성공했는데요.

주기가 10초 이다 보니 onReceive 에서 서버로 데이터 전송하는 시간이 10초 이상이 걸리는 작업의 경우는

어떻게 해야할지 고민입니다.


현재 작업 중인데 또 호출하는거 같아서 문제가 발생할 것 같은데요.


작업이 완료될때까지 기다린다거나 또 호출해도 작업중이면 통과 해버리는 방법이 없을까요??


//------------------- Alarm 셋팅

Intent intent = new Intent(act,  WWWService_Service.class);

PendingIntent sender = PendingIntent.getBroadcast(act, 0, intent, 0);

long firstTime = SystemClock.elapsedRealtime();

firstTime += 10*1000;

//Alarm 설정. 10초 마다 반복

AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);

am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 10*1000, sender);


public class WWWService_Service extends BroadcastReceiver {


@Override

public void onReceive(Context context, Intent intent) { //10초마다 이리루 들어옵니다

???

}

}