5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Background Fetchの実行間隔を取得してみた

Posted at

とあるアプリでBackground Fetchの導入を検討した際に、実際の実行間隔が気になったので、今さらですが、サンプルのアプリをつくって調べてみました。

既に言われ尽くしていますが、改めてBackground Fetchという機能について特徴を挙げておくと

  • 定期実行ではない
    あくまで実行間隔はOSがよしなに決める
  • アプリが終了してしまうと動作しない
    アプリはバックグランド状態にある(終了ではなく停止中の状態)
  • 実行時間が短い
    別タスクが動作するわけではなく、アプリが短時間動くだけ(30秒)

iOS7リリース時に、iOSでもAndroidのようなことができるのか?という期待が大きく裏切られたのは、皆さんご承知の通りです。

サンプルアプリ

Background Fetchが登場してから大分たっていますので、ググれば色々な情報が出てきます。なので既に同じようなことをやっている方がいました。

[iPhone] Background Fetch バックグランド処理

こちらのブログのコードを 丸パクリ 参考にして、Xcode8+Swift3環境にて動くアプリを実機にインストールして、しばらく動かしてみました。

結果

screen.png
-----
2016/12/07 14:14:58
2016/12/07 14:25:13
2016/12/07 14:35:32
2016/12/07 15:33:38
2016/12/07 16:16:00
2016/12/07 16:23:32
2016/12/07 16:38:42
2016/12/07 17:00:07
2016/12/07 17:20:42
2016/12/07 17:37:27
2016/12/07 17:52:54
2016/12/07 18:50:30
2016/12/07 19:04:23
2016/12/07 19:20:35
2016/12/08 11:49:34
2016/12/08 16:03:36
2016/12/08 16:16:18
2016/12/08 16:16:18
2016/12/08 16:34:59
2016/12/08 16:44:38
2016/12/08 17:07:59
2016/12/08 17:51:40
2016/12/08 18:05:37
2016/12/08 18:20:56
2016/12/08 18:31:35
2016/12/08 18:48:59
2016/12/08 18:57:38
2016/12/08 19:41:24
2016/12/08 19:56:12
2016/12/08 20:04:23
2016/12/08 20:11:37
2016/12/09 07:56:59
2016/12/09 08:07:55
2016/12/09 08:20:27
2016/12/09 08:38:27
2016/12/09 12:14:02
2016/12/09 12:23:21
2016/12/09 12:41:01
2016/12/09 12:48:58
2016/12/09 12:56:49
2016/12/09 14:49:27
2016/12/09 15:04:30
2016/12/09 15:20:35
2016/12/09 15:39:07
2016/12/09 16:00:06
2016/12/09 16:11:06
2016/12/09 17:14:05
2016/12/09 17:24:56
2016/12/09 17:37:22
2016/12/09 17:52:36
2016/12/09 18:05:39
2016/12/09 18:12:44
2016/12/09 18:20:26
2016/12/09 19:49:11
2016/12/09 20:00:08
2016/12/09 23:08:29
2016/12/09 23:20:30
2016/12/09 23:26:14
2016/12/09 23:43:45
2016/12/09 23:55:26
2016/12/10 00:18:38
2016/12/10 13:05:37
2016/12/11 02:58:01
2016/12/11 12:27:20
2016/12/11 12:44:42
2016/12/11 12:58:19
2016/12/11 13:15:23
2016/12/11 13:33:23
2016/12/11 13:46:43
2016/12/11 13:55:49
2016/12/11 14:15:20
2016/12/11 14:33:17
2016/12/11 14:44:40
2016/12/11 14:56:41
2016/12/11 20:16:41
2016/12/11 20:16:41
2016/12/11 20:29:23
2016/12/11 20:48:41
2016/12/11 20:58:00
2016/12/11 21:15:30
2016/12/11 21:24:13
2016/12/11 21:42:47
2016/12/11 21:54:00
2016/12/11 22:08:56
2016/12/11 22:26:18
2016/12/11 22:36:02
2016/12/11 22:56:24
2016/12/11 23:13:59
2016/12/11 23:29:34
2016/12/11 23:48:10
2016/12/12 00:06:03
2016/12/12 00:18:05
2016/12/12 00:35:10
2016/12/12 00:52:26
2016/12/12 01:05:31
2016/12/12 01:23:18
2016/12/12 01:34:58
2016/12/12 01:52:26
2016/12/12 02:03:44
2016/12/12 02:21:06
2016/12/12 02:38:37
2016/12/12 02:52:50
2016/12/12 03:11:21
2016/12/12 03:29:59
2016/12/12 03:47:17
2016/12/12 04:04:41
2016/12/12 04:20:43
2016/12/12 04:38:23
2016/12/12 04:59:56
2016/12/12 05:08:14
2016/12/12 05:26:56
2016/12/12 05:38:25
2016/12/12 05:55:55
2016/12/12 06:14:00
2016/12/12 06:31:42
2016/12/12 06:43:47
2016/12/12 07:01:46
2016/12/12 07:20:30
2016/12/12 07:31:50
2016/12/12 07:49:04
2016/12/12 08:02:01
2016/12/12 08:20:29
2016/12/12 08:38:11
2016/12/12 08:50:41
2016/12/12 09:00:08
2016/12/12 09:09:15
2016/12/12 10:28:52
2016/12/12 10:44:37
2016/12/12 10:52:17
2016/12/12 11:04:24
2016/12/12 11:11:54
2016/12/12 11:20:47
2016/12/12 11:29:16
2016/12/12 11:38:38
2016/12/12 11:57:19
2016/12/12 12:05:20
2016/12/12 12:20:25
2016/12/12 12:33:12
2016/12/12 12:44:01
2016/12/12 13:00:06
2016/12/12 13:08:41
2016/12/12 14:19:05
2016/12/12 14:33:32
2016/12/12 14:47:51
2016/12/12 15:04:18
2016/12/12 15:31:38
2016/12/12 15:42:28
2016/12/12 15:42:29
2016/12/12 16:03:46
2016/12/12 16:11:32
2016/12/12 16:29:45
2016/12/12 16:44:41
2016/12/12 17:20:34
2016/12/12 17:37:43
2016/12/12 17:52:31
2016/12/12 18:00:05
2016/12/12 18:21:02
2016/12/12 18:37:06
2016/12/12 18:47:07
2016/12/12 19:00:06
2016/12/12 19:22:11
2016/12/12 19:39:41
2016/12/12 20:48:14
2016/12/12 22:33:51
2016/12/12 22:51:58
2016/12/12 23:10:26
2016/12/12 23:33:02
2016/12/12 23:50:05
2016/12/13 00:03:13
2016/12/13 00:20:23
2016/12/13 00:37:42
2016/12/13 00:55:16
2016/12/13 01:12:30
2016/12/13 01:26:34
2016/12/13 01:35:09
2016/12/13 01:50:11
2016/12/13 02:10:47
2016/12/13 02:29:12
2016/12/13 02:40:58
2016/12/13 02:58:56
2016/12/13 03:10:58
2016/12/13 03:31:00
2016/12/13 03:49:59
2016/12/13 04:10:13
2016/12/13 04:46:10
2016/12/13 04:55:17
2016/12/13 05:14:51
2016/12/13 05:32:51
2016/12/13 05:40:06
2016/12/13 05:57:11
2016/12/13 06:16:10
2016/12/13 06:27:19
2016/12/13 06:44:51
2016/12/13 07:02:51
2016/12/13 07:19:55
2016/12/13 07:31:26
2016/12/13 07:50:19
2016/12/13 08:09:48
2016/12/13 08:27:14
2016/12/13 08:44:34
2016/12/13 09:03:48
2016/12/13 09:17:47
2016/12/13 09:27:51
2016/12/13 09:39:11
2016/12/13 09:47:41
2016/12/13 10:14:55
2016/12/13 10:26:56
2016/12/13 10:35:45
2016/12/13 10:44:41
2016/12/13 11:46:30
2016/12/13 11:57:33
2016/12/13 13:58:24
2016/12/13 14:10:14
2016/12/13 14:17:49
2016/12/13 14:35:30
2016/12/13 14:47:20
2016/12/13 14:55:39
2016/12/13 15:02:51
2016/12/13 15:11:09
2016/12/13 15:28:24
2016/12/13 15:45:53
2016/12/13 16:14:02
2016/12/13 16:27:32
2016/12/13 16:34:47
2016/12/13 16:56:05
2016/12/13 17:23:52
2016/12/13 17:37:22
2016/12/13 17:52:24
2016/12/13 18:12:18
2016/12/13 18:20:50
2016/12/13 18:37:04
2016/12/13 18:45:53
2016/12/13 19:05:07
2016/12/13 19:18:22
2016/12/13 19:20:30
2016/12/13 19:35:08
2016/12/13 19:42:55
2016/12/13 19:51:37
2016/12/13 19:59:58
2016/12/13 20:20:36
2016/12/13 20:38:38
2016/12/13 20:46:17
2016/12/13 22:24:04
2016/12/13 22:46:40
2016/12/13 23:05:07
2016/12/13 23:21:53
2016/12/13 23:31:47
2016/12/13 23:58:35
2016/12/14 00:24:57
2016/12/14 00:33:11
2016/12/14 00:50:32
2016/12/14 01:03:18
2016/12/14 10:04:31
2016/12/14 11:19:31
2016/12/14 11:26:31
2016/12/14 11:34:04
2016/12/14 11:48:07
2016/12/14 11:55:06
2016/12/14 12:02:07
2016/12/14 17:54:01
2016/12/14 18:07:05
2016/12/14 18:20:35
2016/12/14 18:35:03
2016/12/14 19:00:07
2016/12/14 19:17:11
2016/12/14 19:44:10
2016/12/14 19:58:57
2016/12/14 20:16:24
2016/12/14 20:25:22
2016/12/14 20:33:01
2016/12/14 20:41:19
2016/12/14 20:50:58
2016/12/14 21:01:25
2016/12/14 22:08:25
2016/12/14 22:16:51
2016/12/14 23:17:01
2016/12/14 23:27:31
2016/12/14 23:37:04
2016/12/14 23:48:12
2016/12/14 23:57:21
2016/12/15 00:14:26
2016/12/15 00:25:18
2016/12/15 00:37:11
2016/12/15 00:48:28
2016/12/15 00:56:35
2016/12/15 01:14:27
2016/12/15 01:29:48
2016/12/15 01:49:03
2016/12/15 02:06:49
2016/12/15 02:17:07
2016/12/15 02:29:38
2016/12/15 02:41:05
2016/12/15 02:55:31
2016/12/15 03:12:44
2016/12/15 03:29:54
2016/12/15 03:40:59
2016/12/15 04:03:04
2016/12/15 04:20:32
2016/12/15 04:38:08
2016/12/15 04:56:56
2016/12/15 05:09:09
2016/12/15 05:27:31
2016/12/15 05:45:28
2016/12/15 06:02:37
2016/12/15 06:12:32
2016/12/15 06:32:50
2016/12/15 06:53:23
2016/12/15 07:12:02
2016/12/15 07:29:42
2016/12/15 07:47:31
2016/12/15 08:00:40
2016/12/15 08:18:33
2016/12/15 08:33:43
2016/12/15 08:51:02
2016/12/15 09:05:38
2016/12/15 09:14:23
2016/12/15 09:30:47
2016/12/15 09:47:30
2016/12/15 09:58:03
2016/12/15 10:17:17
2016/12/15 10:25:49
2016/12/15 14:32:28
2016/12/15 14:39:48
2016/12/15 15:50:38
2016/12/15 16:00:05
2016/12/15 16:18:24
2016/12/15 16:37:21
2016/12/15 16:45:55
2016/12/15 17:03:43
2016/12/15 17:13:51
2016/12/15 17:44:03
2016/12/15 18:04:10
2016/12/15 18:12:03
2016/12/15 18:20:34
2016/12/15 18:36:44
2016/12/15 19:00:06
2016/12/15 19:07:57
2016/12/15 19:21:02
2016/12/15 19:35:54
2016/12/15 19:48:48
2016/12/15 20:00:05
2016/12/15 20:17:54
2016/12/15 20:28:56
2016/12/15 22:50:04
2016/12/15 23:07:43
2016/12/15 23:15:04
2016/12/15 23:34:48
2016/12/15 23:41:57
2016/12/15 23:52:10

アプリが終了してしまうとBackground Fetchが動かなくなるので、適度にアプリをフォアグランドに持ってくるように(アプリを使ってる風に)したりしました。

また最初に実行されるまで、少々時間がかかるようで、最初の実行記録はインストールから数時間たっています。

考察

このサンプルアプリでは、常に成功(UIBackgroundFetchResult.NewData)を返しているので、実行間隔は短めに調整されていったものと考えられます。

UIBackgroundFetchResult.NewDataが返される間隔が長くなれば、もっと長めに調整されるのでしょう。

1時間に1回以上動作してくれそうなので、結構使えそうな場面はありそうです。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?