나는 Google doc과이 post을 읽었으며 특히 @ bendaf의 대답과 위치 설정 관리에 대해 모두 잘 읽었습니다.위치 설정이 변경되었음을 알리는 방법?
사용자가 처음에 위치를 사용하지 않기로 결정한 다음 나중에 활성화하기로 결정하면 응용 프로그램이이 동작에 의해 트리거되지 않으므로 정기적 업데이트를 요청할 수 있는지 여부를 모르는 경우 문제가 하나 남아 있습니다.
내가 여기서 무엇을 놓쳤는가?
나는 Google doc과이 post을 읽었으며 특히 @ bendaf의 대답과 위치 설정 관리에 대해 모두 잘 읽었습니다.위치 설정이 변경되었음을 알리는 방법?
사용자가 처음에 위치를 사용하지 않기로 결정한 다음 나중에 활성화하기로 결정하면 응용 프로그램이이 동작에 의해 트리거되지 않으므로 정기적 업데이트를 요청할 수 있는지 여부를 모르는 경우 문제가 하나 남아 있습니다.
내가 여기서 무엇을 놓쳤는가?
사용자가 응용 프로그램을 시작할 때마다 사용자가 위치를 활성화 할 수 있도록 AlertDialog를 제공 할 수 있습니다. 그러나 이것은 당신이 똑같은 것을 부정해야 할 때마다 조금 성가 시게 될 것입니다. 사용자가 위치
그것을 할 수있는 또 다른 더 좋은 방법이 있습니다를 활성화/비활성화 할 수 있도록
또는, 환경 설정을 사용할 수 있습니다. LocationListener을 사용하십시오. 그것은 당신이 성취하기를 원하는 유일한 목적을위한 것입니다.
public class XYZ Activity implements LocationListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,10,this);
}
@Override
public void onLocationChanged(Location location) {
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
@Override
public void onProviderEnabled(String s) {
}
@Override
public void onProviderDisabled(String s) {
}
}
나는 이것이 당신이 찾고있는 옳은 일이라고 생각합니다. 그것은 사건의 방식입니다. 해피 코딩 :)
아마도이 문제를 명확하게 설명하지 못했습니다. 사용자가 응용 프로그램을 시작한 것을 고려하십시오. 나는 그에게 GPS를 가능하게 해달라고 부탁했다. 나중에 앱을 사용하는 동안 그는 자신의 위치를 사용하고 설정을 확인하고 GPS를 사용하기를 원한다는 사실을 깨닫습니다. 내 응용 프로그램에이 새로운 설정에 대한 정보가 없습니다. 'isGPSEnabled()'를 위해 끌어 올 스레드를 만드는 경우를 제외하고. – 2ndGAB
네, 그렇게 할 수 있습니다. 또는 다음과 같이 루프를 만들 수 있습니다. while (isRunning) {boolean b = isGPSEnabled(); if (b) {// Your code}} 같은 스레드에서. – hittsss
이벤트 구동 시스템에서 잡아 당기는 스레드를 사용하는 것이 이상합니다. – 2ndGAB