18

これらのメソッド (クラス) の違いは何ですか?

5 秒ごとに実行されるアプリを実行し、終了時にメモリをクリアし、CPU がスタンバイ モードのときにアプリを実行できるようにしたいと考えています。アプリがウェイクロックにバインドされないようにします。

よろしく、

シャフカット

4

1 に答える 1

30

最初の 3 つの違いは、あなたのために行われた作業の量です。また、Service基本的な Android アプリケーション コンポーネントです。

新しいスレッドで何らかの作業を行うための便利なクラスとしてAsyncTaskを使用し、終了時に呼び出し元のスレッド (通常は UI スレッド) で結果を使用します。これは、いくつかのランナブルを使用する単なるラッパーですが、スレッドの作成とスレッド間のメッセージングの処理のすべての複雑さを処理します。

Runnableインターフェースは、Java スレッド化の中核です。Runnableインターフェースは、インスタンスがスレッドによって実行されることを意図しているクラスによって実装されるべきです。

TimerTaskは標準 Java の一部であり、一部の (Runnable) コードの遅延実行または繰り返し実行に使用できます。Android では使用しないことを。代わりに Handler を使用できます。

サービスは、Android アプリケーションの独立した UI のない部分として使用できます。独自のスレッドを実行および作成でき、たとえば、 AlarmManagerを介して UI またはインテントで開始できます。

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

AlarmManager を使用すると、指定した間隔でインテントをブロードキャストしたり、デバイスをウェイクアップするかどうかを制御したりできます。Service で BroadcastReceiver を定義し、マニフェストで宣言するだけです。

質問の最後の部分がよくわからないので、何を達成しようとしているのかをもう少し明確にしてください。

于 2011-08-14T10:09:20.670 に答える