2016-11-24 40 views
0

我正在使用android。请帮助提供任何建议。 我有3个方法(线程)。java/android - 如何保证一个线程或方法是否正在运行,没有人可以触发它?

Method_1 { trigger Method_3; ...} 
    Method_2 { trigger Method_3; ...} 
    Method_3 { ... } 

我怎样才能确保Method_3只能通过Method_1Method_2被触发? 换句话说,如果Method_1Method_2之前执行,如果Method_3仍在运行,则Method_2将跳转到触发器Method_3。或者,如果Method_1Method_2之前执行,则Method_2将触发Method_3,如果Method_3已由Method_1触发。 同样的问题,我怎么在3个线程这样做......

Thread_1 { trigger Thread_3; ...} 
    Thread_2 { trigger Thread_3; ...} 
    Thread_3 { ... } 

因为Thread_3(Method_3)是关系到一些全局变量插座。我想保证这个线程/方法是否正在运行,没有其他人可以触发它,因为它试图连接到网络的另一端。 谢谢你的帮助!

回答

0

使用类变量来保存引用什么的引用。听起来就像你需要对方法和布尔状态标志的引用。

您可以使用缓存来存储结果,首选项或与Activity分离的全局多个值,例如异步线程。

如果线程是从同一个类管理的,那么您可以使用您在storedInstance中销毁时存储的类变量,然后将它们加载回onCreate中。

+0

这真的很有帮助!它现在有效!感谢您的帮助! –

+0

不用担心,很高兴;) –

0

使用带有全局变量和静态变量的类来处理线程。如果线程3触发了类中的更新变量,以避免任何线程触发它。 希望能帮到你。

+0

这真的很有帮助!它现在有效!感谢您的帮助! –

相关问题