내가 할 노력하고있어 무엇 :안드로이드 - GPS 위치 업데이트 - TimerTask를
1) 사용자의 위치 정보를 매 X 분
2
) 웹을 호출하는 타이머와 TimerTask를 사용 업데이트 무슨 일 최신 위치 정보기록 서비스 :
1)에 TimerTask를 사용자의 전화가 동면 경우)
2
를 생성/SL eeping, 웹 서비스에 대한 호출은 사용자의 전화가 깨어 났을 때, 대기 TimerTasks의 모든 결과를 즉시 실행 TimerTask를 큐4)에 저장되어지고있는 것으로 보인다)
3 작동하지 않습니다 웹 서비스 여기
에 대한 다수의 원치 않는 위치 업데이트에 코드입니다 :
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
try
{
//validate that the device has an active & working connection
ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = connMgr.getActiveNetworkInfo();
//validate the the device network provider is enabled
if ((eview_locationManagerwifi
.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) && (activeNetwork != null && activeNetwork.getState() == NetworkInfo.State.CONNECTED))
{
UpdateSubscriberLocation(); // call the web service to report location data
}
else
{
this.cancel();
}
}
catch (Exception e)
{
}
네트워크 연결과 TimerTask를하지 않기 때문에 공급자가 사용되는 검사는 "진정한"분명히으로 돌아 모두 GE 취소 된 경우 사용자의 휴대 전화가 깨어날 때까지 대기열에 들어갑니다.
웹 서비스의 응답없이 일정 시간이 경과 한 경우 어떻게 타이머 작업을 취소 할 수 있습니까? TimerTask에 일종의 "setTimeout"메서드를 찾을 수 없었습니다.
을 TimerTask를 사용하는 방법을 찾을 수 있다면 멋지 네요. 일정한 간격으로 (사용자가 결정한)이 코드가 필요하기 때문에 사용하고 있습니다. 사용자 위치가 아니라면 아무 것도 처리하지 않는 아이디어를 좋아합니다. 변경,하지만 Timer/TimerTask 조합을 사용하지 않고 규칙적으로 일정한 간격으로 코드가 실행되도록하려면 어떻게해야합니까? – JMax2012
잠깐, 실제로 답변을 찾은 것 같아요. requestLocationUpdates() 호출에 일반 시간이 포함되어 있습니다. 간격, 그렇지? 그래서 내가 만들면 응용 프로그램이 시작될 때이 메서드에 대한 호출이 x 밀리 초마다 계속해서 실행되어야합니다. 맞습니까? – JMax2012
requestLocationUpdates의 시간 간격은 위치 관리자에 대한 힌트 일뿐입니다. 장치가 최대 절전 모드이면 더 이상 업데이트를 얻을 수 없습니다. – Stefan