【问题标题】:Calling UILocalNotification from Main.m从 Main.m 调用 UILocalNotification
【发布时间】:2013-05-20 08:29:06
【问题描述】:

我不确定这是否可行,但我正在尝试从 Main.m 上运行的函数触发 UILocalNotification。到目前为止,我尝试了几种不同的方法,但我对谁必须呈现通知有点困惑,因为简单的方法似乎不起作用: 我从 CTTelephonyCenter 上的 Observer(在 Main.m 中定义)调用的静态函数调用此代码

      UILocalNotification *localNotif = [[UILocalNotification alloc] init];
      if (localNotif) {
          NSLog(@"Ciao");
          localNotif.alertBody = [NSString stringWithFormat:
                                        @"La telefonata é finitá!!!!!"];
          localNotif.alertAction = NSLocalizedString(@"Read Message", nil);
          localNotif.soundName = @"alarmsound.caf";
          localNotif.applicationIconBadgeNumber = 1;
          [[UIApplication sharedApplication] presentLocalNotificationNow:localNotif];

       }

现在,日志显示了,但 localNotif 没有。 这就是我害怕的原因,因为没有定义窗口,我无法从 Main 调用的静态函数中做到这一点?

我知道我不应该乱用 main.m

【问题讨论】:

  • 当这种情况发生时,应用程序表面上正在运行,对吧?您是否在 AppDelegate 中处理通知?
  • 只有在您的应用处于后台时才会向用户显示通知。
  • 是的,该应用程序在 Voip 模式下在后台运行。而且通知没有以任何方式处理......通知应该立即出现......但可能我错过了一些东西。

标签: ios objective-c main uilocalnotification


【解决方案1】:

尝试实施:

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification;

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html

在您的应用程序委托中。

如果您的应用已打开,您可以在此处记录内容,但通知中心不会显示任何内容。只有当您的应用在后台时,通知才会显示在通知中心。

【讨论】:

  • 我的应用程序在 voip 模式下处于后台。我试试看。
  • 它不起作用,但可能是因为我在 Main 中有一个 CFRunLoopRun() 阻止了一切
  • 好吧,我试过没有循环,它确实有效!。问题是我正在研究 Main.m 因为我需要那个循环,现在我会将这个答案标记为正确,如果我找到其他解决方案,我会在这里发布。
猜你喜欢
  • 1970-01-01
  • 2012-04-08
  • 2012-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多