gpt4 book ai didi

应用程序关闭后,Android 智能位置库始终连接到 gps

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:19:27 25 4
gpt4 key购买 nike

我正在开发一个在开始时获取用户位置的应用程序。我正在使用 Smart Location Library获取位置和反向地理编码。但主要问题是 GPS 已连接,即使在应用程序关闭后也会显示在通知中。我检查了堆栈跟踪但没有发现任何泄漏的窗口异常。我正在使用此代码获取我的位置..

private void getMyLocation(){
final long mLocTrackingInterval = 1000000 * 5; // 5 sec
float trackingDistance = 1000 * 10;
LocationAccuracy trackingAccuracy = LocationAccuracy.HIGH;
LocationParams.Builder builder = new LocationParams.Builder()
.setAccuracy(trackingAccuracy)
.setDistance(trackingDistance)
.setInterval(mLocTrackingInterval);
SmartLocation.with(mContext)
.location(provider)
// .continuous()
.oneFix()
.config(builder.build())
.start(this);
}

@Override
public void onLocationUpdated(Location location) {
SmartLocation.with(mContext).geocoding()
.reverse(location,new OnReverseGeocodingListener() {
@Override
public void onAddressResolved(Location location, List<Address> results) {
if (results.size() > 0) {
mAddressList=results;
mLocation=location;
tvLocation.setText( results.get(0).getAddressLine(0)+"\n"+results.get(0).getAddressLine(1));
}
}
});
}

和主要 Activity 的onStop()方法..

@Override
protected void onStop() {
super.onStop();
SmartLocation.with(mContext).location(provider).stop();
SmartLocation.with(mContext).geocoding().stop();
}

编辑

我正在使用这个提供者。我也尝试过其他供应商。但还是一样的结果。

private LocationGooglePlayServicesWithFallbackProvider provider=new LocationGooglePlayServicesWithFallbackProvider(mContext);

我已经尝试了很多,但无法弄清楚实际问题是什么。任何帮助,将不胜感激。谢谢

最佳答案

为了让应用保持响应,很多事情都是异步完成的。这是一件好事。看起来您使用的库就是这样工作的。查看Sample of MainActivity.java . onActivityResult() 就是您要找的那个。

那么,它什么时候返回数据?我们只是不确定...

那你怎么阻止它呢?好吧,那是 Android 的另一部分。请看这个Android Activity Lifecycle .您会注意到,虽然 onStop() 通常 被调用,但它并不是用户执行其他操作时的第一件事。如果您等待 onStop() 被调用,您不知道那是什么时候。 如果用户离开某个应用程序并手动将其从内存中删除,则肯定只会调用 onPause(),根据我的经验,其余部分有点碰运气。

因此,如果您想在用户离开时关闭 GPS(但您的应用程序仍在内存中,准备接收通知),您可以在 onPause() 中执行此操作。像这样:

@Override
protected void onPause() {
super.onPause();

if (SmartLocation == still_running) { // pseudo code
SmartLocation.with(mContext).location(provider).stop();
SmartLocation.with(mContext).geocoding().stop();
}
}

关于应用程序关闭后,Android 智能位置库始终连接到 gps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43405768/

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