2012-01-14 6 views
0

メインアクティビティでtimertaskを使用して、X秒ごとにデータを繰り返し更新しています。アンドロイド:タイムアタックとサービスの違いは何ですか?

このデータは静的な形式であるので、公共の静的メソッド

これは悪い手法であるのか?私は、このような静的メソッドを使用していることを意味します

私はサービスと呼ばれることがあることを知っていますが、X秒ごとに更新するためには、アクティビティ

私の質問は、タイマータスクとサービスの使用の違いは何ですか? timertaskはちょうどタイムカウンターで、それ以外は何もありませんか?それがハンドラで使用されているかどうかは、並列で実行されますか?

 handler = new Handler(); 
    t = new Timer(); 
    task = new TimerTask() { 
     public void run() { 

      handler.post(new Runnable() { 
       public void run() { 

             //do stuff; 

       } 
      }); 

     } 

    }; 
    t.schedule(task, 0, 10000); 

このコードはどのくらい正確に機能しますか?それは何をするためのものか?それは並行して実行されますか?なぜ私はこのコードが最初に呼び出されているアクティビティを残しても、まだ実行されていますか?この場合、何が実行されますか?予め

おかげ

答えて

2

TimerTaskは、標準的なJavaの一部であり、(Runnableを)コードのいくつかの部分のための遅延または繰り返し実行するために使用することができます。それはdiscouraged on Androidの使用です。代わりにハンドラを使用できます。

サービスは、Androidアプリケーションの独立した、UIのない​​部分として使用できます。それは独自のスレッドを実行して作成することができ、たとえばAlarmManagerを介してUIまたはインテントで起動することができます。

あなたが望むと思うのは、自分のスレッドを作成して何らかの作業をするサービスです。作業が完了すると、ガベージコレクタが起動したときにAndroid上でメモリが解放されます。あなたが制御していないものが良いことです。

+0

完璧な答えです。 –

関連する問題