2015-06-18 39 views
0

我有一系列的Android应用程序,我需要协调他们的执行。在任何给定的设备上,可以安装这些应用程序中的任何一个,或者安装其中任何两个应用程序,或者其中任意三个,或者任何四个,等等。所有这些应用程序都可以做一件特定的事情,他们都会不时尝试做这件事。现在问题就出现了:在任何时候,最多只允许其中一个应用程序执行此操作。如果任何一个应用程序正在做这件事,其他应用程序都不应该这样做;他们应该等待轮到他们,或者干脆通过。换句话说,我需要Android上的全局互斥或关键部分机制。另外,如果可能,我想避免NDK。我该怎么办?Android全球互斥?

回答

2

您可能需要详细一点才能得到更具体的答案。但根据我的理解,听起来你可以在每个应用程序中使用BroadcastReceiver来监听一个动作以获得广播,并将其作为需要等待或取消动作的标志。然后在每个应用程序内部,每当你要开始你的动作时,你都会用`com.your.packagename.ACTION_STARTING_THE_THING'这个动作字符串来广播一个意图。所有安装的其他应用程序(如果有的话)都会收到此意图,并可以对其进行相应处理。

+0

恐怕你的回答不太对,但无论如何感谢。不正确的原因是,如果我的两个应用试图在大致相同的时间执行“那件事”,他们都会发送广播,并一起直接进入关键部分。如果他们中的任何一个在完成该事情之前收到广播,它可能能够取消该动作,回滚并假装没有发生任何事情,但更可能是太晚了。 – ycsun

+0

我知道我的问题有点过于笼统,但我想知道在Android上是否存在针对此全局互斥问题的通用解决方案,就像它在其他一些平台上一样。 – ycsun