访问从主线程在工作线程中创建的实例

时间:2014-01-23 16:53:30

标签: java android multithreading

我创建了一个节拍器android应用程序,它将合成声音写入AudioTrack实例。当我运行它时,它完全锁定了我的应用程序。我理解这个问题并且已经通过在自己的线程中创建实例来解决这个问题。

我一直在阅读尽可能多的关于在线程之间发送消息的内容,但我找不到任何资源详细说明如何设置变量和调用方法(例如.start(),stop(),setBpm()一旦实例化了主线程中的节拍器实例。

我不是特别想找到一个直接修复所有答案,因为我可能不会理解它足以实现它。如果你能指出一些更好的阅读/例子的方向。

感谢

1 个答案:

答案 0 :(得分:0)

从根本上说,你有一个实现Runnable的类是你的主题。从主线程中继续引用它,你可以调用其中的方法。

当你的主线程创建Runnable时,它应该传递对Runnable需要访问的任何内容的引用 - 如果需要,这可以包括对主对象或任何其他对象的引用。

只要您正确地synchronize调用,两个线程就可以通过更改对象来相互通信。

你应该看看:

ExecutorService java.util.concurrent synchronized

这应该会为您提供一套良好的工具来开始使用。