我正在开发具有多个线程的Android应用程序 - 其中之一是每秒从GPS接收器获取数据1次。我希望其他线程能够访问GPS线程中的信息。Android多线程应用程序 - 共享状态
我已经试着用消息队列来做它,但它使代码变得非常混乱 - 我创建的所有新线程都必须以自己的方式处理消息,所以我必须在每个线程类中执行大量新的实现。
我想能够简单地得到这样的数据:
ApplicationState.getLocation();
这样我就可以使用最新的数据。我怎样才能做到这一点?我不想用synchronized字段创建静态类,因为我不想锁定线程太久,因为我正在其他线程中进行一些在线图像分析。
这里最好的方法是什么?
干杯, Nebril
你可能想看看你的坐标变量的volatile关键字,因为你似乎只需要'(x,y,z)'这个3'double':[小小的howto](http:// www .javamex.com/tutorials/synchronization_volatile.shtml) – nkr
我想通过一些共享不同变量的通用方式。此外,引用http://en.wikipedia.org/wiki/Volatile_variable#In_Java“(但是,不能保证volatile读写的相对顺序与常规读写相关,这意味着它通常不是有用的线程构造。)“ – Nebril