有时我看到许多应用程序,如msn,windows media player等是单实例应用程序(当用户执行应用程序运行时,将不会创建新的应用程序实例).
在C#中,我使用了Mutex类,但我不知道如何在Java中执行此操作.
我在Android中创建命名管道时遇到了麻烦,下面的例子说明了我的困境:
res = mkfifo("/sdcard/fifo9000", S_IRWXO);
if (res != 0)
{
LOG("Error while creating a pipe (return:%d, errno:%d)", res, errno);
}
Run Code Online (Sandbox Code Playgroud)
代码始终打印:
Error while creating a pipe (return:-1, errno:1)
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚为什么会失败.该应用程序具有android.permission.WRITE_EXTERNAL_STORAGE权限.我可以在同一位置创建具有完全相同名称的普通文件,但管道创建失败.有问题的管道应该可以从多个应用程序访问.
我希望我的应用程序检查其自身的另一个版本是否已经运行.
例如,已demo.jar启动,用户单击以再次运行它,但第二个实例意识到"哦等待,已经有demo.jar运行".然后退出并留言.