gpt4 book ai didi

java - 如何使用服务访问每个 Activity 的值

转载 作者:行者123 更新时间:2023-12-02 12:40:12 25 4
gpt4 key购买 nike

我试图使该应用程序类似于 Nissan Leaf Spy。该应用程序从蓝牙接口(interface) ELM 327 接收数据。我的目标是收集以下数据:

  • 速度
  • 温度
  • 电源
  • 电池容量
  • 还有更多数据

并使用 GraphView 将它们显示在实时图表上。一个参数就是 Activity 中的一张图表。因此,至少有与我需要显示的参数一样多的 Activity 。我的猜测是使用

Android Services

在后台工作,通过蓝牙共同收集每个数据并将其保存在不同的数组中。当然,当我更改“Activity ”以查看另一个“Activity ”时,有效的 Activity 将停止工作,并且不会再有实时性。问题是:是否有任何类型的“父类(super class)”始终有效,或者我是否需要使用 SQL 保存这些数据?或者我应该只使用 intent.putExtraString(key,value)getIntent().getStringExtra(key) 。我将感谢您的帮助!

最佳答案

关于针对不同参数使用不同的 Activity ,您只需要一项 Activity 。您可以拥有一个图表和带有参数适配器的不同 ArrayList,然后使用其中之一根据所选参数(例如来自 Spinner)来提供图表。

提供这些 ArrayList 也同样简单。您可以运行一个服务,用于一般数据收集,其中包含一个 AsyncTask,当应用程序处于 Activity 状态且不在后台时,该服务将保持所选参数的源实时状态。该服务本身可以在某种足够大的缓冲区中收集数据来提供这些图表。

请记住,AsyncTasks 非常适合更新 UI 组件而不阻塞主线程。

<小时/>

编辑:看,如果您有一个 Activity (让我们考虑除主 Activity 之外的其他 Activity ),您要在其中显示数据或图形,那么您可以在进入该 Activity 后立即运行 AsyncTask(您可以定义一个要显示的图表的默认参数)或当您从下拉列表中进行选择时,在您进行 Activity 时为您提供实时数据。

我使用 AsyncTask 进行实时推送的原因是,您可以拥有不同的 UI View 并无缝集成,不会出现任何 future 问题,并且它将 Service 模块化为服务 Activity 的功能,并在您关闭应用程序时结束。在后台运行的服务主要提供临时日志文件,或者在应用程序启动或 Activity 启动后运行时作为 AsyncTask 的 InputStream 源。

关于java - 如何使用服务访问每个 Activity 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44967462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com