1. ホーム
  2. android

アンドロイドの遅延実行のいくつかの方法

2022-02-17 10:58:03
  プロジェクトには、すぐに実行する必要のないメソッドがたくさんあり、それらは遅延させる必要があります。 



  1枚目はスレッド式です。  sleep はスレッドをブロックします







   new Thread (new Runnable(){... 



     public void run(){ 



        Thread.sleep(time)を実行します。 



        method(); // 実行するメソッド 



      } 



   }) 



  2つ目は、タイマーです。 



   TimerTaskタスク = new TimerTask(){。 



      public void run(){ 



         //メソッド 



       } 



    } 



    Timer timer = new Timer(); 



    timer.schedule(task,delay)を実行します。 



  3つ目は  postDelayedはスレッドをブロックしない



    new Handler().postDelayed(new Runnable(){) 



      public void run(){ 



       //タスクを実行する 



       } 



    },delay)となります。 

例えば、次のようなコードです。
                                int i = 0;
                                long delayMillis = 900000;



while(i<13)
                                { <未定義



<スパン <スパン hanlder.postDelayed(runnable, delayMillis*i)を実行します。 
                                    i++;




/* ここでは、postDelayはスレッドをブロックしないことを意味します。 待機中 delayMillis*i ミリ秒後にスレッドをキューに追加しますが、プログラムの背後のコードは delayMillis*i ミリ秒後に実行されます。*/
/* 当初、私の理解では、プログラムは postDelayed で一時停止して  delayMillis*iミリ秒後に次のi++を実行しますが、テストしてみると、これは間違いであることがわかりました。つまり、ここで起こっているのは、プログラムが12回連続してpostDelayedを実行し、delayMills*iミリ秒後に順番にキューに追加されるだけなのです。 */




   4つ目は、AlarmManager 一般的な単純作業では、このようなことはしません。