我对 Service 和 BroadcastReceiver 感到困惑。我正在开发基于位置的应用程序。在此,每当用户的位置发生重大变化(例如 10 米)时,我想将用户的位置存储到数据库中。
我正在使用 LocationListener 并且它工作正常。但我的困境是:在哪里编写 onLocationChanged() 方法 - 在 BroadcastReceiver 的 onReceive() 方法中还是在服务中?
如果我使用的是 Service ,那么我应该在 Service 的哪个方法中编写下面的代码?
这是我的位置监听器:
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 开发人员文档,但我仍然无法区分它们的用法?