gpt4 book ai didi

考虑到电池,Android 在后台重复获取位置的最佳方式

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:48:36 26 4
gpt4 key购买 nike

我需要在我的应用程序中持续请求位置,它应该始终是后台服务。

我大约每两分钟需要一次 latlng。我想到了使用服务,在 onStartCommand 中我会使用 locationmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MINIMUM_TIME_INTERVAL, MINIMUM_DISTANCE, this); 以及 locationmanager.requestLocationUpdates (LocationManager.NETWORK_PROVIDER,MINIMUM_TIME_INTERVAL,MINIMUM_DISTANCE,这个);

但我担心随着时间的推移,这个 requestLocationUpdates 会停止给我位置信息。所以我想到了使用 AlarmManager,这样它就能一直给我定位。

我的问题是,是否有必要使用 AlarmManager 来提醒获取位置,或者如果我使用 AlarmManager 会耗尽大量电池。

我只是想知道在后台获取位置的最佳方法。提前致谢。

最佳答案

为什么要为此使用服务?对我来说,它在没有服务的情况下工作。我有一个名为 GPSlistener 的类,它实现了 LocationListener 并在其构造函数中包含以下行:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 5, this);

我使用这种方法是因为我不希望 locationUpdates 停止,但您可以使用这种方法开始监听:

public void startListening(){
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 5, this);
}

然后停止收听:

public void stopListening(){
locationManager.removeUpdates(this)
}

您可以通过设置更高的 minTime 或 minDistance 来节省电量。我相信 minDistance 应该与您更相关。因此,例如,如果您只想每 10 米更新一次位置,那么您可以这样调用它

locationManager.requestLocationUpdates(LocationManager.GPS_Provider, 5000, 10, this)

最佳设置取决于您的应用。例如,如果你想为骑自行车建立一个 GPS 导航,那么你应该在最多 5 米后使用位置更新。另一方面,如果您正在为一些“较慢”的 Activity (例如远足)构建应用程序,那么我认为 10 或 15 米就足够了。

我认为 locationManager 不应该停止发送位置更新,而且我的应用程序中也没有这个问题。

通过使用这种方法,我可以在不使用服务的情况下在后台运行 GPS。但事实是我的应用程序只包含一个 Activity 和 3 个 fragment ,所以我不需要使用服务。

关于考虑到电池,Android 在后台重复获取位置的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27313684/

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