検索

ホームページ  >  に質問  >  本文

ios - 用什么类 可以每隔一段时间执行一次代码 包括在后台

1.用timer的话 vc没有了 timer也跟着释放了 如果不释放 那就成循环引用了
2.用本地通知的话,只能设置固定时间为触发时间,不能像定时器那样每隔一段时间执行一次

迷茫迷茫2771日前538

全員に返信(4)返信します

  • PHPz

    PHPz2017-04-18 09:53:38

    GCDのタイマーを使用することをお勧めします。 GCD のタイマーは NSTimer とは異なります。NSTimer は RunLoop の影響を受けますが、RunLoop も GCD に基づいているため、GCD のタイマーは影響を受けません。

    リーリー

    返事
    0
  • ringa_lee

    ringa_lee2017-04-18 09:53:38

    NSTimer シングルトンを使用し、メインスレッド runloop

    に参加します

    返事
    0
  • 迷茫

    迷茫2017-04-18 09:53:38

    エージェント プラス GCDj プラス シングルトン

    返事
    0
  • 黄舟

    黄舟2017-04-18 09:53:38

    使い方はあなた次第です。具体的な状況を分析してください。

    • 私の個人的なベスト プラクティスは Runloop です。新しいクラスを作成し、クラスがインスタンスを初期化した後に新しいスレッドを作成し、このスレッドの Runloop メッセージをリッスンし、シグナル ソースを追加して実装します。これにより、いくつかの NSTimer エラーやその他の問題を回避できます。

    • 2 つ目は CADisplayLink の監視です。もちろん、CADisplayLink の監視には、負荷が高いため「フレームドロップ」が発生する可能性があります。

    ちなみに、音频服务 を登録しないとバックグラウンドで実装するのは簡単ではありません。

    という方法も検討してください。 リーリー

    返事
    0
  • キャンセル返事