Android——ServiceGPS轨迹记录

上一篇中简单介绍了Service,这篇完成GPS轨迹记录;、

问题:

  1. service中开启GPS实时记录位置,怎样将获取到的数据在activity中显示;
  2. activity启动service方法用哪种方式;上一篇文章中提到用bind+start方式,具体实现方法,
  3. 实际需求:
    ①点击开始按钮,获取稳定的GPS信号,开始实时记录位置信息,显示暂停按钮,显示运动时间与距离。
    ②点击暂停按钮,暂停继续跟踪GPS,显示继续与停止按钮。
    ③响应继续与停止按钮的点击事件。

<一>GPS

推荐几个GPS的使用方法:
http://blog.csdn.net/u012810020/article/details/52517976
http://www.cnblogs.com/android-blogs/p/5718479.html


<二>问题:service修改Activity界面

插播:

  1. Activity调用Service中的方法有哪些?

    Activity调用Service中的方法——绑定服务的模式
    绑定服务:
            ①Extending the Binder class
                    通过Binder接口的形式实现,当Activity绑定Service成功的时候Activity会在ServiceConnection的类的onServiceConnected()回调方法中获取到Service的onBind()方法中return过来的Binder 的子类。
            ②Using a Messager
            ③Using AIDL     
            aidl比较适合当客户端和服务器端不在同一个APP下的场景。
    
  2. Activity如何给Service发送Message?

  3. Service如何给Activity发送Message?
    还没搞懂。。。
    插播结束


参考:
http://blog.csdn.net/fengqiangfeng/article/details/7578264
http://blog.csdn.net/hhhccckkk/article/details/44037719

Service如何将一些状态告诉Activity呢?方法有三种

  1. service 通过广播的形式发送broadcast,我们写一个broadcastReceiver即可,通常的情况,将broadcastReceiver写成 Activity的内部类,这个onReceiver可以直接调用activity的方法来更新界面。
    但是内部类只能采用代码注册的方法 registerReceiver(),不能再AndroidManifest.xml文件中进行静态的声明,因为内部类要依赖于外部类而存在的。如果你 一定要用AndroidManifest来注册receiver,那么只能把broadcastReceiver写成单独的文件的public类。这时 候,你想更新界面就比较麻烦了,你只能自己把你要更新的activity运行起来,然后再向这个activity的内部类发广播的消息来更新界面。
  2. 直接把activity传给service,service通过activity实例随便操作activity
  3. 使用接口回调方式,activity实现相应的接口,service通过接口进行回调,比较灵活。

    我使用方法1.
    先学习一下broadcaseReciver.

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值