2011-05-19 57 views
0

我在写一个应用程序,它必须每隔X秒向服务器发送一次它的GPS位置,我想知道是否有正确的位置来运行应用程序因为即使您更改了活动,它也必须继续发送消息。在哪里初始化GPS,以保持比活动更长的时间

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

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

[编辑:应用程序是为将要单独使用的应用程序中的Galaxy Tab公司]

感谢

回答

1

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

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

为了使事情变得更加人性化:

  1. 使用无源定位提供商。当其他应用使用Gps时,这会泄露位置数据。只有当你长时间没有获取数据时才能直接使用Gps。
  2. 缓存位置数据。当其他应用程序也更新数据时,注册同步管理器以更新数据。使用DownloadManager上传数据文件:DM是智能的,即使设备重新启动,它也会自动重试错误。如果文件很大,则将其设置为仅通过wifi上传。

我强烈建议看雷托•梅耶尔的Android Protips视频http://www.youtube.com/watch?v=twmuBbC_oB8