2013-09-06 5 views
0

저는 타이머 태스크를 사용하여 API를 업데이트합니다. 문제는 장치가 비활성 상태 일 때 정확한 상태를 알 수 없다는 것입니다. timertask가 중지됩니다. 그런 다음 화면 잠금을 해제하고 다시 탐색하면 작업이 다시 시작됩니다. 여기화면 잠금시 Timertask가 중지됩니다.

내가 그것을 할 방법은 다음과 같습니다

myTimer = new Timer(); 
UpdateCurrentLocation updateCurrentLocation= new UpdateCurrentLocation(); 
myTimer.scheduleAtFixedRate(updateCurrentLocation, 0, 900000); 

이 15 분마다 업데이트됩니다. 그러나 장치가 비활성화되면 활동이 중지됩니다. updateCurrenLocation을 백그라운드에서 15 분마다 실행하거나 기기가 잠겨 있거나 앱이 전면에 있지 않도록하고 싶습니다.

아이디어가 있으십니까? 감사!

답변

1

당신은 당신이 달성하려고하는,하지만 가장 가능성이 당신이 Service 또는 IntentService을 만들어야합니다, 그리고 Service가 15 분 간격으로 실행되도록 예약 할 수 AlarmManager의 사용을 어떻게 설명하지 않았다.

public static void scheduleSyncAlarm(Context context){ 
    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 

    Intent syncData = new Intent(context, SyncDataService.class); 

    PendingIntent pendingSyncData = PendingIntent.getService(context, 0, syncData, 
      PendingIntent.FLAG_UPDATE_CURRENT); 

    long syncInterval=AlarmManager.INTERVAL_HOUR/4; 

    alarmManager.setRepeating(AlarmManager.RTC, 0, 
      syncInterval, pendingSyncData); 

} 
+0

나는 어떤 샘플을 사용할 수 있습니까? – ljpv14

+0

간단한 예제가 추가되었습니다. –

+0

감사합니다. 실행해야하는 메소드를 실행하기 위해 어떻게 알람 관리자를 설정해야합니까? 감사! – ljpv14