IOS:在后台收到本地通知时的调用方法

时间:2015-04-16 08:40:21

标签: objective-c iphone notifications uilocalnotification uibackgroundtask

我知道这个问题看起来很复杂,但我没有按照我的要求找到确切的答案。与医疗事件相关的应用程序跟着以下步骤

1) connected the app to smart watch.

2) schedule the local notifications i. e when user needs to take
medicine 

3) when the schedule time arrives local notification fires and
delegate method is calling (did receive local notification)

4) At the time of  firing local notifications i am sending
message(sms) to the user from the app  that he has to take certain
medicine

当应用程序处于前台时,一切正常,当应用程序到达后台时,只有本地通知正在触发,用户不会收到任何消息。因为当应用程序处于后台时没有方法正在调用。但我的整个应用程序都在使用案件主要取决于发送短信。

这有什么解决方案吗?欢迎任何帮助!! Thnxx !!

1 个答案:

答案 0 :(得分:1)

您需要在UIBackgroundTask中显式运行您的方法。见下面的例子:

    UIApplication * application = [UIApplication sharedApplication];
    UIBackgroundTaskIdentifier background_task;
    background_task = [application beginBackgroundTaskWithExpirationHandler:^ {
        [application endBackgroundTask: background_task];
        background_task = UIBackgroundTaskInvalid;
    }];

    // your method call here

    [application endBackgroundTask: background_task];
    background_task = UIBackgroundTaskInvalid;

我做了类似的事情,这对我有用。如果那不适合你,请告诉我。