Android通常のタスク(cronjobと同等)
この質問が(別のユーザーによって)最後に行われたときの回答は次のとおりです。
これが実行中のアクティビティにある場合は、Timer/TimerTaskとHandlerを使用するか、postDelayed()とAsyncTaskを使用できます。
私はまだAndroidをプログラムする方法を学んでいます。私はスレッドを含む私が知っているスキルを経験し、私のコードで多くの問題を抱えていました。誰でも使用方法の例を挙げられますか:time/timertaskとhandler OR postDelayed()とAsyncTask。
前もって感謝します :)
私はこれが役立つかもしれないと感じています: http://www.tutorialforandroid.com/2009/01/using-handler-in-Android.html
あなたがAlarmManagerを使わなければならないCronのようなタスクのために、これはあなたが呼ぶ必要があるあなたのコードでそれを使うためのシステムサービスです:
AlarmManager myAlarmManager = Context.getSystemService(Context.ALARM_SERVICE).
AlarmManagerに関する完全なドキュメント ここ。
最も適切なアプローチは、サービスを介することです。 Androidに含まれているストックメールアプリのソースコードを見て、サービスの書き方を学びました。
一般的な考え方は、 Service クラスをオーバーライドし、 alarms を設定してサービスをアクティブ化することです。デーモンやWindowsサービスとは異なり、Androidサービスは常に実行されているわけではありません-サービスは起動し(通常はアラームによってアクティブ化された場合)、作業を実行してからシャットダウンします。場合によっては、 部分的なウェイクロック を取得して、タスクが完了するまでサービスを続行します-そうしないと、Androidがサービスを途中で強制終了する可能性があります。
Cronjobランナーを構築したい場合、必要なのは Service :です。
サービスは、バックグラウンドで長時間実行される操作を実行できるアプリケーションコンポーネントであり、ユーザーインターフェイスを提供しません。別のアプリケーションコンポーネントがサービスを開始でき、ユーザーが別のアプリケーションに切り替えた場合でも、サービスはバックグラウンドで実行され続けます。さらに、コンポーネントはサービスにバインドしてサービスと対話し、プロセス間通信(IPC)を実行することもできます。たとえば、サービスは、ネットワークトランザクションの処理、音楽の再生、ファイルI/Oの実行、またはコンテンツプロバイダーとの対話をすべてバックグラウンドで実行する場合があります。