Android:不同活动的交流
我有一个关于不同应用程序组件之间通信的问题(不是基于代码) 我想写一个“大”的日志/跟踪工具。这个工具有三个部分Android:不同活动的交流,android,android-activity,Android,Android Activity,我有一个关于不同应用程序组件之间通信的问题(不是基于代码) 我想写一个“大”的日志/跟踪工具。这个工具有三个部分 第二部分,我的主要活动。我想通过单击/取消单击复选框来启动/停止跟踪/记录 部分,位置部分,我想在其中跟踪用户的位置历史(通过位置API) 部分,传感器记录部分,其中我跟踪从用户智能手机获取的所有传感器数据 在第2部分和第3部分中,我想设置位置API(例如精度和刷新时间)和传感器API的设置,此外,在第3部分中,我想激活/停用不同的传感器进行记录 在第1部分,我的主要活动中,我想开始
假设您希望在应用程序处于后台时接收位置和传感器事件,我建议您:
- 将跟踪设置保存在一些持久性存储中,例如SharedReferences,配置屏幕(活动/片段)只需读取和写入这些设置即可
- 在您的主要活动中,选中复选框后,阅读最新配置,开始跟踪,并保持您的跟踪器处于“打开”状态
- 要请求位置,请使用以PendingEvent为参数的方法,例如float、android.location.Criteria、android.app.PendingEvent),并将PendingEvent的目标设置为IntentService,在该IntentService中处理和持久化位置
- 要请求传感器事件,您需要一个活动侦听器。创建一个单独的服务,例如通过AlarmManager定期调用该服务,以收集传感器数据样本,然后将其保存
- UI:编辑跟踪设置和启用/禁用跟踪的活动
- TrackingHelper:一个具有启用/禁用跟踪逻辑的类-注册位置侦听器和警报,触发SensorService以收集一些传感器数据
- SensorService:在请求的时间间隔内注册以侦听传感器事件,然后自行停止的服务
- LoggerService:接收位置对象(可能还有其他数据)并将其持久化的IntentService
- BootReceiver:调用TrackingHelper.startTracking的广播接收器(如果启用了跟踪)