Android——ServiceGPS轨迹记录

来源:互联网 发布:淘宝卖家群聊 编辑:程序博客网 时间:2024/06/05 03:51

上一篇中简单介绍了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 0
原创粉丝点击