gpt4 book ai didi

android - 从后台服务获取位置,这是正确的吗?

转载 作者:太空宇宙 更新时间:2023-11-03 10:29:28 26 4
gpt4 key购买 nike

我有一个后台服务,每 5 分钟从位置管理器获取更新。当 on locationChaged 被调用时,我在我的 Activity 中调用一个函数来更新保存我的用户位置的 GeoPoint。这工作正常,做我想做的。我只是不确定使用广播接收器之类的东西来做这件事是否更好。我试过使用广播接收器,但它不工作。我目前这样做的方式有什么不正确的地方吗?

我的位置服务中有以下方法:

public static double getLat() {
return lat;
}

public static double getLng() {
return lng;
}

public void onLocationChanged(Location loc) {
lat = (double) (loc.getLatitude());
lng = (double) (loc.getLongitude());
mapview.locationHasChanged();
}

在我的绑定(bind) Activity 中,我有以下内容:

public static void locationHasChanged() {

double myLat = LocationService.getLat();
double myLng = LocationService.getLng();

LocGeo = new GeoPoint(
(int) (myLat * 1E6),
(int) (myLng * 1E6));
}

最佳答案

根据我的经验,您所做的很好,这是处理位置更新的标准方法。很容易将 LocationManager 配置为每 5 分钟请求一次更新。我唯一的建议是想想你是否真的需要一项服务来做你需要的事情。当您的 Activity 在屏幕上运行时,您是否只需要位置更新?如果是这样,请不要使用后台服务。如果即使您的 Activity 已关闭,您也需要进行更新,那么请使用服务并确保提供持续通知,以便用户知道您的服务正在后台运行。

广播接收器更多地用于当您需要在手机上发生某些事件后(例如手机开机后)启动或停止后台服务时。

关于android - 从后台服务获取位置,这是正确的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8288098/

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