Android (및 모바일) 프로그래밍의 새로운 기능입니다. 매분 GPS 위치를 설정하여 응용 프로그램을 테스트하려고합니다. ScheduledExecutorService를android의 예약 된 작업에서 테스트 위치 설정
를 사용하는 것은 그래서 내 실행 가능한 클래스 그렇게하려고 :
final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
final Runnable locationTest = new LocationTestScheduledTask(this);
final ScheduledFuture sched=
scheduler.scheduleAtFixedRate(locationTest , 10, 10, TimeUnit.SECONDS);
I를이에서
public class LocationTestScheduledTask implements Runnable {
private Activity activity;
public LocationTestScheduledTask(Activity a)
{
activity = a;
}
@Override
public void run() {
LocationManager locationManager =
(LocationManager)activity.getSystemService(Context.LOCATION_SERVICE);
locationManager.addTestProvider("Test", false, false, false, false, false, false, false, Criteria.POWER_LOW, Criteria.ACCURACY_FINE);
locationManager.setTestProviderEnabled("Test", true);
// Set up your test
Location location = new Location("Test");
Random rand = new Random();
location.setLatitude(rand.nextDouble());
location.setLongitude(rand.nextDouble());
locationManager.setTestProviderLocation("Test", location);
// Check if your listener reacted the right way
locationManager.removeTestProvider("Test");
}
}
난() 내은 Activity.onCreate에서 작업을 호출하는 방법입니다 위치가 변경된 것을 볼 수 없기 때문에 여기에서 뭔가 잘못했을 것입니다.
나는 또한 TimerTask와 매우 비슷한 것을 시도했지만 그 결과도 없다.
누구든지 코드에 무슨 문제가 있다고 지적 할 수 있습니까?
감사합니다! postDelayed()는 작업 예약에 완벽하게 작동했지만 setTestProviderLocation에 문제가있었습니다. 여기 해결책을 찾았습니다 - http://groups.google.com/group/android-developers/browse_thread/thread/07e56400d349817b?pli=1, 이제 작동합니다 !!! – Ginandi