気になったので簡単なレシピを作って実験してみました.
異なるiOSで同じ結果になるとは限らないので注意してください.
※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.
レビュー時のiOSバージョン : iOS15.6.1
スポンサーリンク
レシピ(参考)
今回はランダムな自然数nを使って2^nをひたすら計算、結果をメモに追加するレシピを使います.
ただしpow関数を使うとほぼ同じ処理時間となってしまうため、わざとn回掛け合わせることで(それでも微々たる差ですが)処理時間をある程度ランダムにします.
またこれでも一つ一つの処理は短いので更に2分間待機します.
こうして作ったのがこちらのレシピです.
今回レシピの内容は重要でないため省略します.
ちなみに暗くした部分がメインの処理になります.
なお、レシピの中に「入力を要求」や「メニュー」「リストから選択」「結果を表示」といったアクションが含まれている場合はその時点で中断されます.
その場合ロック解除してホーム画面に移動すれば各々のアクションが実行されます.
結果(パスコードロックなし)
まずパスコードロックをオフにした状態で実行したものからです.
20時前という中途半端な時間ですがここから実行した結果、翌日の朝6時過ぎまで実行できているのがわかります.
この実験ではおよそ10時間20分ほどの間実行できているということになります.
当然この間、自由にロック解除してSNSを利用したりネットサーフィンしたりと普段どおりの操作をしています.
夜間は眠っているので画面ロックの上低電力モードにもなっています.
ただし「ショートカットアプリを終了しない」という条件のみ守っています、つまり以下は厳禁です.
- Appスイッチャーからショートカットを取り除かない
- メモリ解放アプリを行わない
次は朝の8時過ぎに実行したものです.
より長く実行できることを期待したのですが、繰り返しの209回目の途中でヘルプアプリのポップアップエラーが発生したことによりレシピも止まってしまい、実行時間は7時間8分という結果になりました.
更に別の試行でも、エラーなしで朝の6時過ぎに止まってしまいました.
実験に使ったiPhone8は6時に集中モードが解除されるようにしていますが、それ以外で6時前後に行っているのは日の出に行う画面の明るさなどを通常に戻すオートメーションくらいです.
自分が暮らす場所の日の出は現在5:30なので、6時を過ぎても数回実行できていることから無関係と推測されます.
実験を開始してから2度しか経験していないため原因は不明です.
6時前後までで強制終了するのであれば、バックグラウンドでの実行は最大およそ24時間と考えれます.
少し前までは30秒前後だったのが恐ろしい進化ですね.
イレギュラーがあった(起こした)場合
次は特定の条件・操作で処理がそのまま進むのかどうかを見てみました.
予め断っておくと、いずれも処理が中断されたり重複したりと散々ため、できるだけ控えた方がいいです.
ショートカットアプリを終了した場合
上で書いた通り、終了させたタイミングでレシピも強制終了します.
パスコードをオンにしてロックした場合
上ではパスコードをオフにしてロックした場合でした.
パスコードをオンにしてロックした場合、ロックされた間は一時的に停止され、ロック解除後に再開できるようです.
ショートカットアプリから別のレシピを編集・実行した場合
既に実行中のレシピが停止することは基本的にはありませんでした.
ただしショートカット内の動作が確実に重くなります.
ショートカットアプリから実行中のレシピを表示・編集・実行した場合
実行後スリープしたりホーム画面に戻るなりしてショートカットを離れて一定時間経過すると、ショートカットアプリのマイショートカットでの自身のアイコン右上が実行前の状態になります.
そのため編集画面を開けるのですが、開くだけなら処理に問題はありませんが編集や実行を行うと内容によって重複や中断が行われます.
普通に考えて実行中にソースを開くならともかく編集や実行は論外ですけどね.
ウィジェットから実行した場合
マイショートカットから実行した場合と同じです.
ちなみにウィジェットでのショートカットは各々で同時(重複)実行することが可能です.
相互処理に問題あるレシピ同士であればこれはこれで控えたいところですが、レシピを選べば更に便利になるためうまく組み合わせて活用するといいです.
例えば、同じレシピを
- マイショートカット
- ホーム画面に追加したアイコン
- ウィジェット
から実行できてしまいます.
ただしホーム画面に追加したアイコンからの実行は(内容次第で)画面上に出るポップを隠すと中断されるため、3つ同時実行ができるのはアイコンを最後にした場合に限ります.
普通そんなことをする人はいないでしょうが、結果的に出来てしまうので注意してください.
〆
レシピの内容によってはこの通りにいかない可能性もあります.
流石にすべての場合を考えることは出来ても実験するのは不可能ですからね.
自己完結する範囲で実際に試してから、実際に運用してみてください.