在哪里初始化GPS以保持比活动更长的时间

时间:2011-05-19 17:06:32

标签: android gps

我正在编写一个应用程序,必须每隔X秒向服务器发送一次GPS位置,我想知道是否正确运行此应用程序类,因为它必须继续发送消息,即使你改变了活动。

现在我在活动内部初始化,然后有一个不同的线程与计时器发送最新的位置到后端。

我说错了吗?我问的主要是因为我抱怨GPS有时会卡住,但当他们用GPS启动另一个应用程序时,它会在我的程序中重新开始工作。

[编辑:该应用程序适用于将在Galaxy Tab中单独使用该应用程序的公司]

由于

1 个答案:

答案 0 :(得分:1)

一种简单的方法:创建服务并注册它以侦听LocationManager更新。如果您想在手机进入睡眠状态时发送数据,请查看WAKE LOCK。

然而,这将使用GPS和网络,并将耗尽电池。人们不喜欢这样的应用程序 - 我知道我不会使用它。

为了使事情更加用户友好:

  1. 使用被动位置提供程序。当其他应用使用Gps时,这会触发位置数据。仅在长时间不获取数据时才直接使用Gps。
  2. 缓存位置数据。当其他应用程序也更新数据时,注册同步管理器以更新数据。使用DownloadManager上传数据文件:DM是智能的,即使设备重新启动,它也会在出错时自动重试。如果文件很大,则将其设置为仅通过wifi上传。
  3. 我强烈建议您观看Reto Meier的Android Protips视频http://www.youtube.com/watch?v=twmuBbC_oB8