目前有这样一个需求,Android客户机开启GPS,每隔一段时间(比如5秒,时间间隔比较段)将当前经纬度信息写入一个指定的服务器的数据库中。请问这样的架构该如何设计?主要的疑问是
1.肯定不能GPS经纬度每5秒就连接一次数据库写数据,这样比较浪费资源,是否有长连接概念。2.是让Android直接连数据库写数据比较好,还是在服务器端再开发一个平台,Android利用Socket连接服务器端平台传经纬度数据,然后由服务器端平台写入数据。3.这种比较频繁的获取经纬度信息,然后发送数据,是用线程做好,还是Service好?
1.肯定不能GPS经纬度每5秒就连接一次数据库写数据,这样比较浪费资源,是否有长连接概念。2.是让Android直接连数据库写数据比较好,还是在服务器端再开发一个平台,Android利用Socket连接服务器端平台传经纬度数据,然后由服务器端平台写入数据。3.这种比较频繁的获取经纬度信息,然后发送数据,是用线程做好,还是Service好?
2.肯定不能用Android直接连接数据可了,在数据库和Android客户端之间要要个应用服务,如果用HTTP可以用现成的应用服务器,例如Tomcat等
3.肯定是用service做了.
这个SERVICE 锁屏要报错 很重要
说说基本思路吧
==================================
1,定义GPS监听类,起始就是继承LocationListener 然后重写方法,获取location和gpsstates,记着采用阻塞式去获取,因为GPS较慢
/**
* GPS监听类
*
* 阻塞式监听或更新
* 1,监听并更新location
* 2,监听并更新状态
*
* @author ZYB <[email protected]>
*/
public class GPSListener implements LocationListener {
..
..
}
=========================================
2,获取locationManager,这个比较简单其实就是获取locationManager,但是注意,如果GPS获取失败,要跳到GPS设置界面,打开GPS后,再回来/**
* GPS初始化类,获取LocationManager
*
* @author ZYB <[email protected]>
*/public class GPSLoncationManamger {
....
}
===========================================
3, 定义 GPS定位数据传送接口 ,接口中会定义几个方法,比较读取数据,关闭GPS和获取设备状态等等/**
* GPS定位数据传送接口
*
* @author ZYB <[email protected]>
*/public abstract interface GPSReadListener {
..
}
==================================
4,定义GPS管理类,是单独的线程,因为GPS的操作是异步执行的
在线程中去更新location,根据location的信息,去输入结果,把结果回调给指定的GPSReadListener实现者
/**
*
* GPS读取管理者,负责启动GPS设备,读取GPS经纬度。
*
* @author ZYB <[email protected]>
*/
public class GPSManager implements Runnable {
..
}
===========================
基本思路是这样的,仅供参考啊
不休眠费电呀
可以试试 用receiver定时开启服务