我正在为越狱的 iOS 编写一个守护进程,我想使用 GUI 为其设置某些设置。是否可以为守护程序提供 GUI?如果没有,我如何编写一个可以与守护进程通信的应用程序,以便我可以通过应用程序控制守护进程?
问问题
1309 次
1 回答
7
是的,你可以这样做。我有多个应用程序,其中包含一个 normal UIApplication
,然后是一个一直运行的后台Launch Daemon。
这取决于你想在两者之间交流什么样的信息。我使用的一种模式(也有许多其他方法)是拥有一个共享的首选项文件。我可能会将这个文件存储在/var/mobile/Library/MyAppName/user_preferences.plist
. 启动守护进程会读取这个文件,而 UI 可以写入它。
writeToFile:atomically:
当用户通过 UI 更改某些设置时,您的 UI 可以用in写出 plist 文件NSDictionary
。然后它需要告诉守护程序是时候重新读取首选项文件了。您可以通过通知来做到这一点。在 UI 应用程序中:
#import <notify.h>
notify_post("com.mycompany.settings_changed");
com.mycompany.settings_changed
然后,在您的守护程序中,您将注册一个回调方法或块,当通知发布 时将由 iOS 调用。
int status = notify_register_dispatch("com.mycompany.settings_changed",
¬ifyToken,
dispatch_get_main_queue(), ^(int t) {
NSLog(@"settings notification received");
[self loadSettings];
});
然后,守护程序的loadSettings
方法可以使用dictionaryWithContentsOfFile:
.
如果以后有更多时间,我会尝试添加更多描述(和代码)。
于 2012-11-25T00:51:52.740 回答