在iOS中以编程方式检查警报
我有这样的场景,在iOS中以编程方式检查警报,ios,iphone,alert,alarm,alertview,Ios,Iphone,Alert,Alarm,Alertview,我有这样的场景, 我在iPhone中设置了2-3个闹钟。现在我正在运行我的应用程序。当我的应用程序正在执行时,如果触发了警报(或我的设备中显示的任何其他类型的警报),我想通过编程方式向应用程序了解该警报,并根据收到的警报执行一些任务。因此,我只想知道,通过它,您可以知道屏幕上显示了一些警报(可能是系统警报)。您可以通过:(未使用系统警报进行测试) 你的意思是想知道哪个警报被触发了吗?不只是我屏幕上出现的任何类型的警报,它可能是系统警报或我的应用程序发出的警报itself@MDThakkar:您的
我在iPhone中设置了2-3个闹钟。现在我正在运行我的应用程序。当我的应用程序正在执行时,如果触发了警报(或我的设备中显示的任何其他类型的警报),我想通过编程方式向应用程序了解该警报,并根据收到的警报执行一些任务。因此,我只想知道,通过它,您可以知道屏幕上显示了一些警报(可能是系统警报)。您可以通过:(未使用系统警报进行测试)
你的意思是想知道哪个警报被触发了吗?不只是我屏幕上出现的任何类型的警报,它可能是系统警报或我的应用程序发出的警报itself@MDThakkar:您的应用不应位于后台!不,我的应用程序在前台,我完成的任务是:1分钟后定时报警,我有按钮,当我按下按钮时,我保持睡眠(60),所以应用程序进入睡眠1分钟(在此期间报警触发警报),然后我使用您的代码检查警报,你的意思是,当应用程序再次唤醒时,屏幕上已经出现警报,你启动了上述方法,但不起作用?它没有给我答案……我没有否决你,其他人否决了你,它总是打印UILayoutContainerView,我正在向上投票你,我不想让你这么做unsatisfied@MDThakkar:我已经测试了代码。它在这里工作。我所做的是:首先我显示了
UIAlertView
,然后在1秒后我启动了上述方法,它返回true
,并显示日志UIAlertView
!!!
- (BOOL)isALertOnScreen
{
for (UIWindow* window in [UIApplication sharedApplication].windows)
{
NSArray* subviews = window.subviews;
if ([subviews count] > 0)
{
for (id obj in subviews)
{
DLog(@"%@",[obj class]);
if ([obj isKindOfClass:[UIAlertView class]])
return YES;
}
}
}
return NO;
}