Service와 BroadcastReceiver 사이에 혼동이 있습니다. 위치 기반 앱에서 일하고 있습니다. 이 때, 나는 그/그녀의 위치 (예 : 10 미터)에 중요한 변화가있을 때마다 데이터베이스에 사용자의 위치를 저장하려고합니다.위치를 자주 얻고 저장하는 것이 더 낫습니다 - 서비스 또는 BroadcastReceiver?
LocationListener를 사용하고 있는데 정상적으로 작동합니다. 하지만 내 딜레마는 다음과 같습니다. onLocationChanged() 메서드를 작성하는 위치 - BroadcastReceiver 또는 서비스의 onReceive() 메서드에서?
그리고 만약 내가 서비스를 사용한다면 어떤 서비스 방법으로 아래 코드를 작성해야합니까?
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
if(location != null){
//Code to populate location-data into the database table.
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String provider) {}
public void onProviderDisabled(String provider) {}
};
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5, 10, locationListener);
사람이 그것을 구현하는 더 좋은 방법이 무엇인지 저를 제안시겠습니까 : 여기
내 위치 수신기입니까? Service와 BroadcastReceiver에 대한 Android 개발자 문서를 모두 읽었지만 아직 사용법을 구별 할 수 없습니까?
고맙습니다. 그래서 위의 코드를 백그라운드 스레드, 즉 AsyncTask에 넣어야한다고 말씀하십니까? –
의존))) 서비스를 실행하는 동안 장치가 절전 모드로 전환되지 않도록 하시겠습니까? 이것은 좋은 일이 아닙니다 (OS가 전원 관리를하도록해야합니다).하지만이 서비스가 필수적이라고 절대적으로 확신하는 경우 ... –
내 앱이 포 그라운드에있는 경우에만 내 서비스를 실행하고 싶습니다. 앱이 백그라운드에서 실행되면이 서비스가 중단됩니다. 그거 괜찮아? –