これはどのように実装されますか?
アイコンを表示するSkypeのスクリーンショットに基づくと、Notification
ほとんどの場合、を使用していstartForeground()
ます。
Android 2.3では、しばらく実行した後にサービスが強制終了されることがわかりました。
それは完全に正常です。
まず、ほとんどのAndroidアプリケーションは、「基本的に24時間365日稼働する」サービスを実際には必要としません。ユーザーはそのようなサービスを好まないため、タスクキラーと実行中のサービス画面およびOSの自動キルロジックが存在します。サービスを「24時間365日」実行する必要がある唯一の理由は、マイクロ秒ごとに値を提供する場合です。SkypeのようなVOIPクライアントは、電話の着信を待っているため、マイクロ秒ごとに価値を提供します。ほとんどのAndroidアプリケーションはこの基準を満たしていません。
サービスが継続的に実行されているが、ユーザーが制御する期間(音楽プレーヤーなど)の場合startForeground()
は、優れたソリューションです。
それ以外の場合は、「基本的に24時間365日実行」するサービスを排除し、を使用してユーザー制御可能なポーリングシステムに切り替える方法を見つけてAlarmManager
ください。そのため、サービスは、価値を提供している場合を除いて、通常はメモリにありません。