Android——ServiceGPS轨迹记录

xiaoxiao2021-02-27  662

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

问题:

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

<一>GPS

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


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

插播:

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下的场景。

Activity如何给Service发送Message?

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


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

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

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

使用接口回调方式,activity实现相应的接口,service通过接口进行回调,比较灵活。

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

转载请注明原文地址: https://www.6miu.com/read-1142.html

最新回复(0)