如何限制应用同时只能运行一个实例?

2017-01-26 15:43:45 +08:00
 cbais7890
4651 次点击
所在节点    iDev
7 条回复
phrack
2017-01-26 16:13:49 +08:00
最好说明一下系统,语言,应用场景什么的吧。

可以用 file lock , mutex , port lock ,反正就是资源占据,检查。
wohenyingyu02
2017-01-26 16:18:08 +08:00
取同一个 bundle id
cbais7890
2017-01-26 16:35:27 +08:00
谢谢楼上提供的关键字, 找到了解决方案, 这里贴一下

// 取 bundleId
let bundleID = Bundle.main.bundleIdentifier!
// 如果该 Bundle 执行的实例大于 1
if NSRunningApplication.runningApplications(withBundleIdentifier: bundleID).count > 1 {
// 退出
NSApp.terminate(nil)
}
laoyur
2017-01-26 18:35:32 +08:00
很好奇在 iOS 上什么场景下需要?
越狱开发?防止打包党多开?打包党都是换 bundleid 的呀
cyr1l
2017-01-26 18:52:02 +08:00
@laoyur 可能是 Mac App
laoyur
2017-01-26 19:09:59 +08:00
@cyr1l #5 额,有道理
cbais7890
2017-01-26 21:26:21 +08:00
@cyr1l
@laoyur
对, 是 MacOS 上的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/337028

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX