目前有这样一个需求,Android客户机开启GPS,每隔一段时间(比如5秒,时间间隔比较段)将当前经纬度信息写入一个指定的服务器的数据库中。请问这样的架构该如何设计?主要的疑问是
1.肯定不能GPS经纬度每5秒就连接一次数据库写数据,这样比较浪费资源,是否有长连接概念。2.是让Android直接连数据库写数据比较好,还是在服务器端再开发一个平台,Android利用Socket连接服务器端平台传经纬度数据,然后由服务器端平台写入数据。3.这种比较频繁的获取经纬度信息,然后发送数据,是用线程做好,还是Service好?

解决方案 »

  1.   

    1. 每隔5秒上传是没问题的, 如果你自己用tcp是可以做长连接的,不过用HTTP也行(可以试试)
    2.肯定不能用Android直接连接数据可了,在数据库和Android客户端之间要要个应用服务,如果用HTTP可以用现成的应用服务器,例如Tomcat等
    3.肯定是用service做了.
      

  2.   

    数据库和Android客户端要有一个中间的程序来缓冲完成他们之间的直接链接,这样的话可以减少出错还有性能问题做成SERVICE比较稳定切效率好一些
      

  3.   

    Socket通信SERVICE + receiverSERVICE 锁屏要报错
      

  4.   


    这个SERVICE 锁屏要报错 很重要
      

  5.   

    Service屏锁报错,各位有什么好的解决办法吗?我能否考虑设置屏幕不休眠?
      

  6.   

    刚好前两天写了个GPS模块:
    说说基本思路吧
    ==================================
    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 {
    ..
    }
    ===========================
    基本思路是这样的,仅供参考啊
      

  7.   


    不休眠费电呀
    可以试试 用receiver定时开启服务