gpt4 book ai didi

Android多线程应用——共享状态

转载 作者:搜寻专家 更新时间:2023-11-01 08:06:16 25 4
gpt4 key购买 nike

我正在开发具有多个线程的 Android 应用程序 - 其中一个线程每秒从 GPS 接收器获取数据 1 次。我希望其他线程能够访问来自 GPS 线程的信息。

我已经尝试过使用消息队列来实现它,但这让代码变得相当困惑——我创建的所有新线程都必须以它自己的方式处理消息,所以我不得不在每个线程类中做很多新的实现。

我希望能够以这种方式简单地获取数据:

ApplicationState.getLocation();

所以我可以使用最新的数据。我怎样才能完成它?我不想创建具有同步字段的静态类,因为我不想锁定线程太久,因为我正在其他线程中进行一些在线图像分析。

什么方法最好?

干杯,内布里尔

最佳答案

您是否考虑过使用事件总线系统? Otto, an Apache licensed library from Square非常整洁。

您可以创建一个触发新的 LocationUpdateEvents 的位置更新类。任何有兴趣接收此更新的对象都可以有一个用 @Subscribe 注释的方法。这是一种不依赖于困惑的监听器接口(interface)的进程间通信的好方法。

Otto 的另一个优点是您的 LocationUpdater 类可以有一个用 @Produce 注释的方法。有了这个,任何开始监听LocationUpdateEvents的对象都将立即收到一个包含您的LocationUpdater找到的最后位置的对象。

关于Android多线程应用——共享状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13998415/

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