gpt4 book ai didi

android - LocationListener 和内存泄漏

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:49:46 25 4
gpt4 key购买 nike

根据sample app找到用户位置最好在 Activity 中监听位置变化:

class MyActivity extends Activity implements LocationListener {
@Inject
private LocationManager locationManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
}

@Override
public void onLocationChanged(Location location) {
// do something with location
}

// ...
}

但是,我不确定。当配置发生变化时,我的 Activity 将被销毁并重新创建,下次将自己注册为监听器。对旧 Activity 的引用保存在 LocationManager 中,不是吗?

如果我将 LocationListener 提取到单独的对象,我仍然会遇到如何通知当前 Activity 有关新位置的问题(不一定与请求 Activity 相同)。

有什么通用的模式可以解决这个问题吗?

最佳答案

在此示例中,您还有另一个问题:您的 GPS 监听器将始终工作并且会耗尽电池。

更好的做法是:

1) 将 LocationListener 注册到 Activity 的 onStart()

2) 将 LocationListener 移除到 Activity 的 onStop()

这将解决这两个问题。

如果您需要您的应用在后台跟踪用户位置(例如,GPS 跟踪器),请使用服务 ( http://developer.android.com/reference/android/app/Service.html )

关于android - LocationListener 和内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21305233/

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