gpt4 book ai didi

android - 什么是经常获取和存储位置更好 - 服务或广播接收器?

转载 作者:太空宇宙 更新时间:2023-11-03 13:00:01 25 4
gpt4 key购买 nike

我混淆了 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 开发者文档,但我仍然无法区分它们的用法?

最佳答案

这取决于你的目的。如果您想在后台捕获位置,请在服务中使用。

BroadcastReciever 的 onReceive 方法只会在您注册接收什么 Action 时调用。

如果你想在前台做,你可以简单地在 Activity 中使用它。但是当您的 Activity 关闭时,您将无法获取这些位置。

因此,您可以根据自己的功能来决定。

关于android - 什么是经常获取和存储位置更好 - 服务或广播接收器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12974600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com