【功能】
定位策略及后台定位Service
正常
由
李寒添加于 2014-04-29 22:25
*一、定位策略*
由于GPS定位会消耗大量电量,所以不能使手机持续进行GPS定位。这里,我们使用了如下定位策略:创建定位线程进行周期性定位,定位周期为30s,也就是说每隔30s发起一次GPS定位,普通手机在户外大约需要3~5s便可以得到定位结果,而第一次定位的结果往往精度不高,所以我们设置拿到定位结果后每隔1s更新一下结果,直到总定位时间达到8s,停止定位并把此时的结果写入数据库。简而言之,每隔30s定位一次,每次定位持续时间为8s,这样即能有效节省电量,又能得到精度较高的结果。
*二、后台定位Service*
这个模块是客户端一个核心功能。由于我们要跟踪用户的运动轨迹,所以要实现一个后台的Service进行定位工作,这样,无论我们的程序退出与否,只要手机是开机状态,我们就可以持续进行跟踪定位。然后,由于Android系统的机制,后台Service会在主程序销毁后随之销毁,导致关掉程序后,后台定位Service便不再工作。但是,我们通过把Service生命为前台服务,可以提高服务的优先级,从而保证不被系统杀掉,不过使用前台服务会在状态栏产生一个不可消除的通知,影响用户的体验。目前我们还在寻找更加完美的解决方案。