我为Cydia编写了一个插件,它会在状态栏上添加一个图标。 在主屏幕和启动SpringBoard时,它都能正常工作,而且如果已经启动了应用程序,它也能正常工作, 但是,如果关闭(完全关闭)某个应用程序(如Facebook或Twitter),并且图标正在显示,则在启动该应用程序时,它将导致该图标消失。 使用以下代码使用libStatusBar显示图标:
if(icon) // if icon needs to be removed
{
[icon release];
icon = nil;
}
...
// add the icon to the status bar
icon = [[%c(LSStatusBarItem) alloc] initWithIdentifier:[NSString stringWithFormat:@"muteIconLablabla"] alignment:StatusBarAlignmentRight];
icon.imageName = [NSString stringWithFormat:@"Mute"];
我也尝试使用在libStatusBar
自述文件中提出的方法。
[[UIApplication sharedApplication] addStatusBarImageNamed:@"ON_Mute"]; // and removeStatusBarImageNamed:...
我尝试重写-(id)init
并在其中更新图标,但结果相同。
上述代码是从一个static void
函数调用的。例如,这个函数被多次调用,比如在%hook SpringBoard
下的-(void)applicationDidFinishLaunching:(id)application
和-(void)ringerChanged:(int)changed
中。
全部位于Tweak.xm
中。
该问题在中也会发生。