如何在后台运行任务,以便在swift中每分钟发出通知

时间:2015-12-27 17:42:59

标签: ios swift

我的应用程序是关于每分钟检查,然后在我的数据库更新时发出通知。

我已经在Android版本中完成了我的应用程序,该版本具有简单的工作流程,例如使用BroadcastReceiver在设备启动时启动重复的AlarmManager,然后让它每分钟执行一次任务。

制作iOS版本时遇到的麻烦是如何启动设备启动以及如何让它每分钟完成任务背景。

2 个答案:

答案 0 :(得分:1)

幸运的是,在iOS中这是不可能的。设备启动后也无法以编程方式运行,同时在后台运行应用程序非常有限。

答案 1 :(得分:0)

编辑 Parse.com已经死了。下面的答案在回写时是有效的。

  

Parse Shutdown Reminder现在关闭托管的Parse服务。至   所有开发人员都在那里,很高兴帮助你建立   应用。再见,祝你好运!

如果您正在使用Parse,您可以检查数据库是否通过Cloud Code更新,然后根据该数据库设置推送通知。

快速回答:

首先,您必须设置Parse Cloud Code才能执行此操作。 https://parse.com/docs/cloudcode/guide这里是Cloud Code的文档。

以下是推送通知文档:https://www.parse.com/docs/ios/guide#push-notifications

更长的回答:

我就这样做了:

https://parse.com/apps/quickstart#cloud_code/unix使用此快速入门来帮助您。

  1. 您将需要为您尝试执行的内容编写一些javascript逻辑,如教程/文档所述。
  2. 例如,在此代码中,我希望删除超过24小时的帖子:

    // Use Parse.Cloud.define to define as many cloud functions as you want.
    // For example:
    Parse.Cloud.define("hello", function(request, response) {
      response.success("Hello world!");
    });
    Parse.Cloud.job('deleteOldPosts', function(request, status) {
    
                        // All access
                        Parse.Cloud.useMasterKey();
    
                        var today = new Date();
                        var days = 1;
                        var time = (days * 24 * 3600 * 1000);
                        var expirationDate = new Date(today.getTime() - (time));
    
                        var query = new Parse.Query("ProductInfo");
                            query.lessThan('createdAt', expirationDate);
    
                            query.find().then(function (ProductInfo) {
                                                          Parse.Object.destroyAll(ProductInfo, {
                                                                                                  success: function() {
                                                                                                      status.success('All posts are removed.');
                                                                                                  },
                                                                                                  error: function(error) {
                                                                                                      status.error('Error, posts are not removed.');
                                                                                                  }
                                                                                              });
                                                      }, function (error) {});
    
                    }); 
    
    1. 获得用于检查数据库是否已更新的javascript逻辑后,转到项目,然后单击核心,然后单击作业

    2. 然后,安排工作。

    3. 你会得到这样的东西:

      enter image description here

      它所说的"会议纪要"你可以选择1分钟。

      希望有所帮助。

      PS,这是我几周前回答的类似问题,可能有所帮助:Swift2 push when app is closed